‘Comparable 应该是’function界面’吗?

function接口的定义是“function接口是一个只有一个抽象方法的接口(除了Object的方法),因此代表了一个单一的function契约。” 根据这个定义,Comparable绝对是一个function界面。 lambda表达式的定义是“lambda表达式就像一个方法:它提供了一个forms参数列表和一个正文 – 一个表达式或块 – 用这些参数表示。” lambda表达式的评估产生function接口的实例。 因此,lambda表达式的目的是通过实现function接口的单个​​function来创建function接口的实例。 即。 允许使用单个函数创建实例。 让我们来看看Comparable,这个界面是否设计用作单一function? 即。 它是否仅用于创建具有此单一function的实例? Comparable的文档以“此接口对每个实现它的类的对象强加一个总排序。这个顺序称为类的自然顺序,类的compareTo方法被称为它的自然比较方法。” 上面的句子清楚地表明Comparable并不是设计用作单个函数,而是总是由一个类实现,它通过添加这个单个函数对其实例具有自然顺序。 这意味着它不是设计为使用lambda表达式创建的。 关键是我们不会有任何仅仅是可比较的对象,它意味着要实现,因此用作类的附加function。 那么,Java语言中是否有一种方法可以防止为Comparable创建lambda表达式? 接口的设计者是否可以决定这个接口是由一个类实现的,而不是通过使用lambda表达式作为这个单一方法的实例而被哄骗? 仅仅因为接口恰好具有单个抽象方法,所以不应将其视为function接口。 可能是,如果Java提供像NotFunctional这样的注释,编译器可以检查该接口是否不用于创建lambda表达式,例如。 @NotFunctional public interface Comparable { public int compareTo(T t); }

如何禁止特定函数的Java编译器警告

我们总是被教导确保我们在switch语句中使用break来避免掉头。 Java编译器警告这些情况,以帮助我们不要做出微不足道(但是极其严重)的错误。 但是,我使用了案例属性作为一个function(我们不必在这里进入它,但它提供了一个非常优雅的解决方案)。 但是,编译器会发出大量警告,这些警告可能会掩盖我需要了解的警告。 我知道如何更改编译器以忽略所有直通警告,但我想在逐个方法的基础上实现这一点,以避免错过我不希望发生跌倒的地方。 有任何想法吗?

如何在准备好的语句中设置参数列表?

我有一个名单,例如: List names = … names.add(‘charles’); … 并声明: PreparedStatement stmt = conn.prepareStatement(‘select * from person where name in ( ? )’); 如何做到以下几点: stmt.setParameterList(1,names); 有解决方法吗? 谁能解释为什么这种方法丢失了? 使用:java,postgresql,jdbc3

如何将Portlet部署到Liferay?

我在尝试将新portlet安装到在Glassfish域上运行的Liferay时遇到了问题。 我最近想出了这个流程,并希望与其他人分享。 所以,请阅读答案,希望这有助于某人:) (问题的先决条件是我知道在Glassfish上运行的项目是使用autodeploy文件夹完成的,但是在Liferay上显示它们是另一个故事。)

Java Bouncy Castle Cryptography – 使用AES加密

如何使用java bouncy castle library实现AES加密? 示例代码或示例代码的链接会很好:)

Android – 将ImageView设置为URL

我正在尝试将Imageview设置为URL。 以下是我的代码 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.getpic); ImageView i = (ImageView)findViewById(R.id.ivget); URL url; try { url = new URL(“http://sofzh.miximages.com/java/1359419073599s.jpg”); Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); i.setImageBitmap(image); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } […]

将InputStream传递给OutputStream的最佳方法

我试图找到将InputStream传递给OutputStream的最佳方法。 我没有选择使用Apache IO之类的任何其他库。 这是片段和输出。 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.channels.FileChannel; public class Pipe { public static void main(String[] args) throws Exception { for(PipeTestCase testCase : testCases) { System.out.println(testCase.getApproach()); InputStream is = new FileInputStream(“D:\\in\\lft_.txt”); OutputStream os = new FileOutputStream(“D:\\in\\out.txt”); long start = System.currentTimeMillis(); testCase.pipe(is, os); long end = System.currentTimeMillis(); System.out.println(“Execution […]

JavaFX HBox隐藏项目

如何隐藏HBox中的项目,并使此项目使用的空间可用于其他项目。 TitledPane legendPane = new TitledPane(“Legend”, _legend); legendPane.setVisible(false); LineChart chart = new LineChart(_xAxis, _yAxis); HBox hbox = new HBox(5); hbox.getChildren().addAll(legendPane, chart); 在上面的代码中,我希望图表节点在隐藏图例窗格时使用所有可用空间。

wsimport – 两个声明导致冲突,给出相同的行

尝试使用wsimport为SOAP端点生成客户端。 WSDL和使用的所有XSD文件都是本地副本。 这是正在执行的命令: wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution 这给出了这个错误: [ERROR] Two declarations cause a collision in the ObjectFactory class. line 16 of file:/schemas/newSchema.xsd [ERROR] (Related to above error) This is the other declaration. line 16 of file:/schemas/newSchema.xsd 请注意,报告的碰撞的行号是相同的。 这是架构: Description here. More description here. 我已经尝试删除类型定义,但它在很多其他地方引用。 有谁可以提供任何有关如何使其工作的建议? 谢谢 编辑: 这是WSDL导入这些模式的行:

Android Work Manager与服务?

在我的Android应用程序中,我有多个意图服务,这些服务一个接一个地运行,并且第一个意图服务由广播进行攻击。 几天前我遇到了Work Manager,并且非常喜欢Worker和WorkManager类的简单性。 工作管理器对常规意图服务的利弊是什么? 我现在应该转换到工作经理,考虑到将来我可能不得不写更多的意向服务吗? 还有哪个选项可以帮助我轻松测试代码?