请看一下我的代码:
Object longL = 2548214;
Map<String, Object> map = new HashMap<String, Object>(1);
map.put("LongNumber", longL);
List<Map<String, Object>> returnlist = new ArrayList(10);
returnlist.add(map);
List<Object> versionMap1 = new ArrayList(10);
versionMap1.add(returnlist);
List<Map<String, String>> docIdVersionNameMap = new ArrayList<>();
docIdVersionNameMap.addAll((List<Map<String, String>>)versionMap1.get(0));
Map<String, String> versionDoc=docIdVersionNameMap.get(0);
Map<String,String> versionDocInfo=new HashMap<String,String>(1);
versionDocInfo.put(versionDoc.get("LongNumber"),"abc");
System.out.println(versionDocInfo.toString());
Run Code Online (Sandbox Code Playgroud)
在Java_1.8_60(编译并运行)中,此代码运行良好,但是在Java 11中编译并运行时,它将引发以下异常:
Exception in thread "main" java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of l
oader 'bootstrap')
at teststringandlong.Trial.main(Trial.java:35)
Run Code Online (Sandbox Code Playgroud)
Java 11中有关HashMap的变化吗?
我最近一直在读巴拿马项目.
我知道它将成为JNI的下一代替代品 - 它将允许Java开发人员使用Java在本机层上进行编码(这是令人惊叹的恕我直言).
从我所看到的jnr-posix看,用法很简单,例如:
public class FileTest {
private static POSIX posix;
@BeforeClass
public static void setUpClass() throws Exception {
posix = POSIXFactory.getPOSIX(new DummyPOSIXHandler(), true);
}
@Test
public void utimesTest() throws Throwable {
// FIXME: On Windows this is working but providing wrong numbers and therefore getting wrong results.
if (!Platform.IS_WINDOWS) {
File f = File.createTempFile("utimes", null);
int rval = posix.utimes(f.getAbsolutePath(), new long[]{800, 200}, new long[]{900, 300});
assertEquals("utimes did not return 0", 0, rval);
FileStat …Run Code Online (Sandbox Code Playgroud) 我在巴拿马遵循了 Java 中 SIMD 的英特尔教程 。我想对数组做一些简单的操作:
这里是网站的标量和向量循环:
public static void scalarComputation(float[] a, float[] b, float[] c) {
for (int i = 0; i < a.length; i++) {
c[i] = (a[i] * a[i] + b[i] * b[i]) * - 1.0f;
}
}
public static void vectorComputation(float[] a, float[] b, float[] c) {
int i = 0;
for (; i < (a.length & ~(species.length() - 1));
i += species.length()) {
FloatVector<Shapes.S256Bit> va = speciesFloat.fromArray(a, i);
FloatVector<Shapes.S256Bit> vb = speciesFloat.fromArray(b, i); …Run Code Online (Sandbox Code Playgroud) 线程“main”中的异常 java.lang.ClassCastException:类 sun.font.CompositeFont 无法转换为类 sun.font.PhysicalFont (sun.font.CompositeFont 和 sun.font.PhysicalFont 位于加载程序“bootstrap”的模块 java.desktop 中')在 solaris sparc 64 位上使用 JAVA 11。JDK 版本:-- 11.0.2
在 Solaris Sparc 64 位上使用 JDK 11.0.2 运行我们的应用程序时,我们遇到了以下异常:-
Exception in thread "main" java.lang.ClassCastException: class sun.font.CompositeFont cannot be cast to class sun.font.PhysicalFont (sun.font.CompositeFont and sun.font.PhysicalFont are in module java.desktop of loader 'bootstrap')
at java.desktop/sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1086)
at java.desktop/sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:965)
at java.desktop/sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:287)
at java.desktop/sun.font.CompositeFont.getSlotFont(CompositeFont.java:376)
at java.desktop/sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:80)
at java.desktop/sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:95)
at java.desktop/sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:360)
at java.desktop/sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:351)
at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:303)
at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1231)
at java.desktop/javax.swing.JComponent.getFontMetrics(JComponent.java:1646)
at java.desktop/javax.swing.plaf.basic.BasicGraphicsUtils.getPreferredButtonSize(BasicGraphicsUtils.java:351)
at java.desktop/javax.swing.plaf.basic.BasicButtonUI.getPreferredSize(BasicButtonUI.java:474)
at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1680)
Run Code Online (Sandbox Code Playgroud)
int w …
public class CustomerOrder {
private final Gender gender;
private final Order order;
public Gender getGender() {
return gender;
}
public Order getOrder() {
return order;
}
}
public class Order {
private final long orderAmount;
public long getOrderAmount() {
return orderAmount;
}
}
Run Code Online (Sandbox Code Playgroud)
我想实现相当于java的java流:
SELECT Gender, SUM(orderAmount) FROM orders
GROUP BY Gender;
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:我简化了问题 - CustomerOrder包含一个Order,其中包含orderAmount
我设法通过以下方式获得Map<Gender, List<Long>>:
Map<Gender, List<Long>> map = orders.stream()
.collect(Collectors.groupingBy(CustomerOrder::getGender))
Run Code Online (Sandbox Code Playgroud) 我写了使用方法参考的简单示例:
public class Main {
private static String identity(String param) {
return param;
}
public static void main(String... args) {
Function<String, String> fun = Main::identity;
System.out.println(fun.apply("Hello"));
}}
Run Code Online (Sandbox Code Playgroud)
And in generated byte code is InnerClass:
InnerClasses:
public static final #68= #67 of #71; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
BootstrapMethods:
0: #35 invokestatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
#36 (Ljava/lang/Object;)Ljava/lang/Object;....
Run Code Online (Sandbox Code Playgroud)
I supposed this innerClass is used in lambda bootstrap method, but I do not know when jvm create object of this class and …
好吧,我真的认为这会起作用(在方法内):
var x, y = 1;
var x = 1, y = 2;
Run Code Online (Sandbox Code Playgroud)
但它没有,它不会编译 - "化合物定义中不允许使用var".
我想这是一个平常的权衡.这不是一个非常常用的功能,因此没有实现,但我们可以肯定,可能会在将来的版本中...
我有一个界面:
interface SomeInterface<T>{
}
Run Code Online (Sandbox Code Playgroud)
在java中我可以声明列表如下:
List<SomeInterface> list = new ArrayList<>();
怎么在Kotlin写相同的?如果我试试这个:
var list = ArrayList<PreferenceSerializer>()
Run Code Online (Sandbox Code Playgroud)
我收到一个错误

我有一个可执行文件 jar,可以使用java -jar app.jar运行,但SDK 为 326MB。这是很多。
jlink 可以创建JRE,但我无法使用jlink,因为我有一个非模块化应用程序。
您能告诉我如何创建 JRE 吗?