技术文章类别

 所有技术文章

  • 不应分配参数“ foo”,这有什么害处?

    看起来好像没有人在这里做过举动。 我通常不会更改参数,实际上,我倾向于标记我的参数final以明确禁止使用它。原因如下: 分配参数可能会 与尝试将其用作“输出参数” 混淆,请a href

  • 如何在JSP中以几种不同的方式对列表进行排序?

    该SOEL标签维基描述的方式来做到这一点,而无需使用小脚本:使用EL函数来完成排序,然后使用该结果items在JSTL核心属性forEach标签。 函数类: package org.hierax.ifdl.tags.player; public final class PlayerSort { public static List&l

  • Bouncy Castle与带有OAEP的Java默认RSA

    对于更多信息,类似的问题#1,请参阅马腾Bodewes答案,这个和这个。 转换字符串的“模式”部分无效。问题是不同提供商使用的默认值不同。这是不幸的,而且绝对是次优的。我们应该责怪Sun Oracle吗?除了对结果不满意之外,我没有其他意见。 OAEP是一个相当复杂的构造,具有两个不同的哈希函数作为参数。使用Cipher转换字符串可以指定其中之一,并将其​​指定为SHA-256。但是,MGF

  • Java中&=和| =会短路吗?

    不,|=并=没有短路,因为它们的复合赋值版本和|等不短路。 [JLS 15.26.2复合赋值运算符]a href="http:java.sun.comdocsbooksjlsthird_editionhtmlexpressions.

  • 如何附加到现有的java.io.ObjectStream?

    实际上,这很容易做到。当您添加到现有流时,需要使用ObjectOutStream的子类,该子类将重写,writeStreamHeader以便在文件中间不写入第二个标头。例如 class NoHeaderObjectOutputStream extends ObjectOutputStream { public NoHeaderObjectOutputStreamOutputStre

  • 公共类的抽象构造函数是否有充分的理由

    答案对于java是相同的: 没有理由为抽象类提供公共构造函数。我认为编译器不抱怨的原因很简单,因为他们只是没有花时间来解决这个问题,因为它是公开的还是受保护的都没有关系。 除了直接子类,您不能从任何其他类调用抽象类的构造函数。 因此,为抽象类的构造函数的访问修饰符添加特殊规则不会为该语言添加有用的内容。

  • junit-jupiter-api和junit-jupiter-engine之间的区别

    5.4之前的JUnit 从文档: junit-jupiter-api JUnit Jupiter API,用于编写测试和

  • 检查自定义对象列表对于Java 8中的属性是否具有相同的值

    一种方法是获取第一个列表的名称,然后调用allMatch并进行检查。 String firstName = yourListOfAs.get0.name; boolean allSameName = yourListOfAs.stream.allMatchx - x.name.equalsfirstName;

  • Java编译器:具有相同名称和不同签名的两个方法如何与一个方法调用匹配?

    根据JLS§15.12.2.2: 除非参数表达式具有以下形式之一,否则认为它 与 可能适用的方法的 适用性有关m:

  • 带有LIKE的Oracle中的重音和不区分大小写的排序规则

    一种方法是修改会话参数NLS_SORT并NLS_COMP: SQL SELECT Name FROM CollationTestTable WHERE NAME LIKE '%pe%'; NAME ------------------------------------------------------------------------------

  • 初始化后如何完成SunPKCS11 Provider?

    终于能够找到解决方案。Sun的提供程序在下面使用包装器。因此,诀窍是使用Sun的PKCS#11包装器来获取当前实例并完成该实例。显然,此会话功能的最终确定未在提供程序中公开。但是有一个解决方法,它看起来像这样: public static void providerAndWrapperIssue throws Exception { final String name = "ANY_NAME";

  • 如何在android中彼此合并两个音频文件

    您不需要FFMPEG,可以使用android中提供的标准编解码器。 public void playFileString fileToPlay { see where we find a suitable autiotrack MediaExtractor extractor = new MediaExtractor; try

  • JPA不能很好地支持接口。

    这意味着您不能在接口上进行映射(注释)或查询。您只能查询@Entity类,并且只能将它们放在真实类中,而不能放在接口上。通常这不是问题,接口没有状态,因此在大多数情况下与持久性没有真正关系。您仍然可以在模型中使用接口,只是不能直接映射它们。 如果您有使用接口类型的关系,则只需将targetEntity设置为实现类。如果您有多个实现者,并且不能让他们共享继承,那么您需要变得更有创造力。某些JPA提供程序(例如EclipseLink

  • JTable的特定行中的Celleditor(JComboBox)

    更新: 在测试我的(可能是不完整的)答案时,我遇到了一个非常好的SO问题,我认为它将比我能提供的更好:将JComboBox放入JTable 另一个更新: 我再次阅读了您的问题,并且意识到您要求输入 特定的行 。我能想到的唯一方法是创建一个自定义CellEditor,如下所示: p

  • 泛型Java和类型参数的隐藏

    您所有T的都不同,但是只有使用完整的语法调用方法时,您才能看到它: 例如,此代码有效: new FloatRuleInteger.CharacterFoo

  • 日志文件名以在log4j中包括当前日期

    DailyRollingFileAppender直到午夜后的某个时间记录了第一条消息后,使用log4j附带的发货才重命名日志文件。 您可以尝试使用DatedFileAppender,可以从此处下载。与相反DailyRollingFileAppen

  • 在Swing内部的BufferedImage中绘画

    OK - here are a ..few changes. import java.awt.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class JavaPaintUI ext

  • 创建一个持有值1的新Integer对象?

    您跳过了预期的解决方案: Integer p = Integer.valueOf1; 此模式称为Factory方法模式。有人可能会问这种方法有什么好处。幸运的是,a href="https:hg.openjdk.java.netjd

  • 是否可以使用Java为不同的操作系统更改桌面背景?

    您可以使用: String os = System.getProperty"os.name"; 确定应用运行的操作系统,并从那里决定要做什么。像这样: if os.startsWith"Windows" { includes all Windows versions } else if os.startsWith

  • ConcurrentHashMap jdk 8使用TreeNodes代替List ..为什么?

    主要更改是添加ConcurrentHashMap了新Java 8默认Map方法的特定实现,并具有依赖于内部细节的更好的并发实现。这些更改需要大量新的内部类,这些内部类使.java文件膨胀 例如,其中一些方法包括: a href="http:docs.oracle.comjavase8docsapijavautilMap.ht

  • JSF ui:include无法正确呈现

    关于问题的原因,ui:include在视图构建时间(还原视图阶段)中运行,而不是在您期望的视图渲染时间(渲染响应阶段)中运行。因此,如果包含路径在例如调用操作阶段甚至渲染响应阶段发生更改,那么除非将其完全重建,否则它将不会反映在视图中。 当前,最好的选择是使用多个静态ui:include标签,每个标签在视图渲染期间有条件地渲染。没错,这最终导致不

  • 发送数据时,从Android应用程序中的Firebase检索ServerValue.Timestamp

    Firebase.ServerValue.TIMESTAMP设置为Map(包含{.sv: "timestamp"}),告诉Firebase用服务器的时间填充该字段。当该数据被回读时,它是实际的unix时间戳记Long。 这样的事情会起作用: Firebase ref = new Firebas

  • 如何在Java中找到Chrome下载路径

    Google chrome正在为这样的自定义配置维护一个配置文件,即 JSON* 格式的名为 Preferences的 配置文件,因此您必须阅读此文件,您将从该文件中获取下载文件夹的当前路径。 * "download": { "default_directory": "CURRENT_PATH_OF_

  • RecyclerView:内部类不能具有静态声明

    直接回答您的问题: 内部类不能具有静态声明 完全是真的。这不是错误,错误消息甚至没有误导。 我听说将嵌套类用作静态方法更好,这样您就不会浪费引用

  • Java致命错误:在类路径或引导类路径中找不到包java.lang

    该问题来自IntelliJ错误(至少在版本14中存在)。当您的JDK目录位于用户个人资料目录下时,就会发生这种情况。例如,位于此目录中的JDK(对于Windows): C:\Users\myuser\jdk1.8.0_20 将以以下方式存储在IntelliJ内部配置(文件“ jdk.table.xml”)中: $USER_HOME$\jdk1.8.0_20

  • 从Java 8流中获取下一项

    基于Stuart的回答,并进行了从Iterator到Stream的转换,我想到了以下快速而又简单的包装器类。它没有经过测试,也不是线程安全的,但是它为我提供了我目前需要的—移除并使用单个项目,同时保持 此 流“开放”。 PeelingStreamT提供一种方法,T getNext该屏蔽远someWrappedSt

  • Java集中对象的可变字段

    的javadoc Set说 注意:如果将可变对象用作集合元素,则必须格外小心。如果对象的值以影响相等比较的方式更改,而对象是集合中的元素,则不指定集合的​​行为。此禁止的一种特殊情况是,不允许集合将自身包含为元素。 这只是意味着您可以在集合中使用可变对象,甚至可以更改它们。您只应确保所做的更改不会影响Set

  • 使用stax和dom读取大XML文件

    您可以使用StAX(javax.xml.stream)解析器并将javax.xml.transform每个部分转换()到DOM节点(org.w3c.dom): import java.io.*; import javax.xml.stream.*; import javax.xml.transform.*; import javax.x

  • 比较器和equals()

    尽管这可能行得通,但这远非最佳实践。 从SortedSet文档: 请注意, 如果排序集要正确实现Set接口 ,则

  • Java中是否存在有向无环图(DAG)数据类型,我应该使用它吗?

    对于这个特殊的问题。我决定使用Guava的LinkedListMultimap。

  • DTO模式是否被弃用?

    不被弃用。是否应使用DTO模式取决于应用程序体系结构。例如,当开发Web服务(使用JAX-WS或JAX- RS)时,应通过Web方法发送DTO,以便C#或Python客户端应用程序可以使用它,并且Web方法不应返回具有以下类的对象:休眠注释,请记住,将不会使用其他注释或其他业务逻辑在内部创建实体。 编辑(根据您的评论):这取决于软件体系结构。例如,我正在一个SOA项目中,我们将DTO用于服务层和表示

  • Tess4j不使用它的tessdata文件夹

    让您TESSDATA_PREFIX environment variable指向Tess4j的tessdata文件夹。 通常,您是在系统上的安装过程中设置这些变量的,但您可能会在这里找到解决方案:如何通过Java设置环境变量? 您必须在运行您的应用程序的系统上执行此操作,因为tessdata .dll依赖于此环境变量。

  • Yuv(NV21)图像转换为位图

    感谢Alex Cohn,感谢他帮助我加快了转换速度。我实现了您建议的方法(RenderScript内部函数)。该代码由RenderScript内在函数构成,可将YUV图像转换为位图的速度约快5倍。先前的代码花费了100-150毫秒。在三星Note 3上,这需要15到30左右。 如果有人需要执行相同的任务,则代码如下: 这些将用于: pri

  • 如何使用URLConnection上传二进制文件

    我的代码是正确的。 主机给出了一个错误,因为它不希望Content-Transfer-Encoding标题。删除后,一切正常。

  • 为什么即使在Java 8上,Spring Data存储库方法参数名称也不可用?

    默认情况下,接口不保留参数名称信息-在无Java版本中,即使没有debug设置标志也是如此。但是,Java 8添加了一项功能,该功能可通过-parameters需要显式设置的新编译器标志来保留所有类型的参数信息。 见a href="https:github.comspring-projectsspring-data- examplesblob16b

  • 如何在Java中制作InputStream的深层副本

    InputStream是抽象的,不会公开(也不公开其子级)内部数据对象。因此,“深度复制” InputStream的唯一方法是创建ByteArrayOutputStream,然后在InputStream上执行read()之后,将此数据写入()到ByteArrayOutputStream。然后做: newStream = new ByteArrayInputStreambyteArrayOutpu

  • 使用属性获取元素

    有多种方法可以做到这一点。您可以使用xPath(示例),DOM Document或SAX Parser(示例)来检索属性值和标记

  • 边界检查最合适的地方-构造函数还是二传手?

    从构造函数中调用可重写的方法是一个坏主意。做更多这样的事情: private String name; private Float value; public MySampleClassString theName, Float theValue { this.name = theName; setValueImpltheValue; } public void setNameStr

  • 将图像加载到ImageView JavaFX

    getClass.getResourceAsStreampath将从调用类的位置开始其文件搜索。因此,使用此路径"imgs\pic1.jpg",您的意思是这是您的文件结构 src\myProject\gui\imgs\pic1.jpg 要使搜索遍历,您需要在之前添加额外的分隔符imgs。所以

  • W / CameraBase:连接相机时发生错误:0

    “无法连接到相机服务”表示您(或其他)相机应用未能正确释放相机。在我开发应用程序时,偶尔也会发生这种情况。我要做的第一件事是从手机随附的默认相机应用程序中打开相机(只需点按“相​​机”按钮)。如果无法打开,则唯一的选择是重启手机。 这是推测,但是您的代码可能仅偶尔出现一个错误,并且只是到现在为止还没有出现。如果仍然存在,请查看与“如何在android中正确释放相机”相关的问题。他们帮助我解决了这个问题。