我可以直接在Java中使用scala List吗?

我可以在Java中使用scala List,例如: import scala.collection.immutable.List; class HelloScalaList { public static void main (String[] args) { List xs = List(1, 2, 3); System.out.println(xs); } } 它似乎没有编译。 找不到List $ .apply方法。 当我改变它 List xs = Dir.ls() 其中Dir是我的scala类,而ls()返回一个scala List,编译器抱怨 “内部编译器错误:java.lang.ClassCastException:org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding无法强制转换为org.eclipse.jupt.internal中的org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding。 compiler.lookup.BinaryTypeBinding.initializeTypeVariable(BinaryTypeBinding.java:927)” 我不知道这是什么意思。 我想在scala中编写一些库,但也希望它在Java中使用。 在我的scala类中有返回scala List的方法,对于java代码使用它们,我有两个选择: 直接在java中使用scala List 编写一个包装器类,为这些方法返回java.util.List。 我更喜欢选项1,因为否则我将不得不为几乎所有的scala类编写一个包装类。 但我只是无法在Java中运行scala List。

在java中的序列点概念

我是Java新手,有CI的背景正在通过Khalid Moughal的书。 在页126上他举了一个例子 int i = 10; int k = ++i + –i; // ((++i) + (–i)). 这显然违反了C语言中的序列点概念,它表示在相同的序列点中不能多次更改变量的值。 我的问题是,相同的序列点规则是否适用于java? 他可能只是为了解释前缀一元运算符的概念及其副作用而采用这个例子,但这样一个明显违反语言非常基本规则的例子并不像Khalid Moughal那样出名。 所以请确认一下。 希望你们人们把它带入正确的精神。 谢谢, Mawia

迭代时向元素添加元素。 (Java)

可能重复: Java:在迭代期间向集合添加元素 我的问题是,我想在迭代它时使用新元素扩展一个列表,我希望迭代器继续我刚添加的元素。 根据我的理解, ListIterator.add()在列表中的当前元素之前添加元素,而不是在它之后。 是否有可能以其他方式实现这一目标?

如何在JSON字符串中检查给定对象是对象还是数组

我从网站获取JSON字符串。 我有这样的数据(JSON数组) myconf= {URL:[blah,blah]} 但有时这个数据可以是(JSON对象) myconf= {URL:{try}} 也可以是空的 myconf= {} 我想在它的对象和不同的数组时做不同的操作。 直到我的代码,我试图只考虑数组,所以我得到以下exception。 但我无法检查对象或数组。 我得到以下exception org.json.JSONException: JSONObject[“URL”] is not a JSONArray. 任何人都可以建议如何修复它。 在这里,我知道对象和数组是JSON对象的实例。 但我找不到一个函数,我可以检查给定的实例是一个数组或对象。 我试过使用这个条件,但没有成功 if ( myconf.length() == 0 ||myconf.has(“URL”)!=true||myconf.getJSONArray(“URL”).length()==0)

如何在内存中创建目录? 伪文件系统/虚拟目录

对于我的用例,我想在内存目录中存储一些文件很短的时间。 实际上我在运行时将源代码编译为.class文件,类加载并执行它们。 干净的方法是创建一个虚拟目录,让编译器在那里创建.class文件。 当然我可以使用临时目录,但是我必须在编译前清理它,我不知道我是否是唯一使用它的人,等等。 那么,是否可以在Java中创建一个虚拟的,在内存的意义上的目录?

Java Scanner类读取字符串

我得到以下代码: int nnames; String names[]; System.out.print(“How many names are you going to save: “); Scanner in = new Scanner(System.in); nnames = in.nextInt(); names = new String[nnames]; for (int i = 0; i < names.length; i++){ System.out.print("Type a name: "); names[i] = in.nextLine(); } 该代码的输出如下: How many names are you going to save:3 Type a name: […]

使用Spring AOP && MVC订购方面

我正在尝试使用Spring AOP和Spring MVC Controller。 我有3个方面,并希望按特定顺序。 为了做到这一点,我使用Ordered接口并实现getOrder方法: @Aspect @Component public class LoggingAspect implements Ordered{ public int getOrder() { System.out.println(“Abra”); return 1; } 建议课程: @Component @Controller public class HomeController { 切入点: @Aspect public class SystemArchitecture { @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void inHomeController(){} @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void loggable(){} @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void authenticated(){} } 组态: <!– […]

为什么在使用带有类名的静态变量时未显示非法的前向引用错误

在下面的代码中访问具有类名的静态变量时,它不会抛出前向引用错误但是在没有类名的情况下访问它。 为什么在使用类名访问时不会发生这种情况? class Test{ static { System.out.println(a); // shows error a = 99; // and this line too doesn’t give error System.out.println(Test.a); // this line doesn’t } static int a = 10; static{ System.out.println(a); } }

如何保护我的java Web应用程序?

我有一个Web应用程序,当用户登录时,他们到达mainjsp.jsp页面。 在此页面中,日期的文本框很少,并根据日期和从另一个下拉列表中选择,提交数据。 这些数据由servlet检索并返回到mainjsp页面。 我担心的是安全问题。 现在,当我复制粘贴mainjsp.jsp页面的URL并将其粘贴到任何浏览器中时,此页面将按原样显示。 我不希望这种情况发生。 我希望用户首先登录,因此我希望我的Web应用程序安全。 我不知道该怎么做。 你能告诉我怎样才能做到这一点? 另外请告诉我如何为Web应用程序中的任何页面实现此目的。 如果用户尚未登录,则用户无法访问任何页面。

禁用向JTextField输入一些符号

如何禁用除数字以外的任何符号输入到JTextField ?