我想知道为什么JDK 9不再有Java EE版本。我读到,由于 JDK 9 版本不再包含 Java EE,因此 Java EE 自己的功能将显示为已弃用。你知道如何解决这个问题吗?
观察者和可观察类:
可观察到:-
class NewsAgency extends Observable {
String news;
public void setNews(String news) {
this.news = news;
setChanged();
notifyObservers(news);
}
}
Run Code Online (Sandbox Code Playgroud)
观察员:-
public class IndiaNews implements Observer {
@Override
public void update(Observable o, Object news) {
System.out.println("Indianews: " +news.toString());
}
}
class AjjTak implements Observer {
@Override
public void update(Observable o, Object news) {
System.out.println("AjjTak: " +news.toString());
}
Run Code Online (Sandbox Code Playgroud)
主要类别:-
public class Main {
public static void main(String[] args) {
NewsAgency newsAgency = new NewsAgency();
IndiaNews …Run Code Online (Sandbox Code Playgroud) Java 9的出现为Java的Collections API带来了许多新功能,其中一个是集合工厂方法.
它们是什么以及如何正确实施?
我知道java 9中的字符串表示有所改进.我也发现了一些信息.我想更多地了解这一点,以及与以前的Java版本相比,如何减少内存使用量并改进垃圾收集.有几个问题只与这个主题有关,但我不完全相信那里的答案.提前致谢.
如何java.lang.Module通过Java 9中的字符串名称获取?
例如,我们有
String name = "some.module";
Module module = //how to get here it?
Run Code Online (Sandbox Code Playgroud) 在 Java 8 之前,可以sun.misc.Unsafe通过如下方法获取单例实例:
public static Unsafe getUnsafe() {
try {
Field f = Unsafe.class.getDeclaredField("theUnsafe");
f.setAccessible(true);
return (Unsafe) f.get(null);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
尽管强烈建议不要使用Unsafe,但许多供应商和图书馆在内部使用它。
现在,有了 Java 9 和 Jigsaw,我认为Unsafe处理方式也发生了变化。我读了一些带有相反信息的帖子。有人说它已完全隐藏,甚至无法检索,有人说必须启用 VM 标志,而另一些人则写道它现在应该得到正式支持。
那么:是否仍然可以sun.misc.Unsafe在 Java 9 中使用?如果可以,如何使用?
Ant 1.10.2与Java 10兼容吗?ant文档不是很清楚:它只是说它与最低版本的Java 1.5兼容.我怎么能确定它与java 10兼容?谢谢!
我想在Spring中使用Java 9。但我得到例外:
Caused by: org.springframework.aop.framework.AopConfigException: Unable to instantiate proxy using Objenesis, and regular proxy instantiation via default constructor fails as well; nested exception is java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.http.HttpMessageConverters$$EnhancerBySpringCGLIB$$1d90bff9.<init>()
at deployment.datalis_gateway.war//org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:82)
at deployment.datalis_gateway.war//org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
... 62 more
Caused by: java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.http.HttpMessageConverters$$EnhancerBySpringCGLIB$$1d90bff9.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3302)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2512)
at deployment.datalis_gateway.war//org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:76)
... 63 more
Run Code Online (Sandbox Code Playgroud)
您知道如何配置Java 9来查找此受限Java程序包吗?
有一种更好的方法可以通过以下代码的十分钟来舍入(天花板和地板)日期时间:
public void hintOfTime() {
Date orario = new SimpleDateFormat("hh:mm").parse(usaServizio_standard.setStr());
// I have skipped the try catch for an easy read
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(orario);
int minutes = calendar.get(Calendar.MINUTE);
if(minutes>=1 && minutes<=9) {
usaServizio_standard.hint("not valid date","Try with: "+ calendar.get(Calendar.HOUR+1)+":00 or "+calendar.get(Calendar.HOUR+1)+":10");
}else if(minutes>=11 && minutes<=19) {
usaServizio_standard.hint("not valid date","Try with: "+ calendar.get(Calendar.HOUR+1)+":10 or "+calendar.get(Calendar.HOUR+1)+":20");
}else if(minutes>=21 && minutes<=29) {
usaServizio_standard.hint("not valid date","Try with: "+ calendar.get(Calendar.HOUR+1)+":20 or "+calendar.get(Calendar.HOUR+1)+":30");
}else if(minutes>=31 && minutes<=39) {
usaServizio_standard.consiglio("not valid date","Try with: "+ calendar.get(Calendar.HOUR+1)+":30 or …Run Code Online (Sandbox Code Playgroud) 我有一个数组,我想转换为Map,这样数组中的第一个元素是键,第二个元素是值,依此类推.
我正在尝试以下内容:
Arrays.asList("Tamilnadu", "chennai", "Karnataka", "Bengluru")
.stream()
.collect(HashMap::new,
(a, b) -> a.put(b, ""),//value should be next element in array
(a, b) -> a.putAll(b)
);
Run Code Online (Sandbox Code Playgroud)
我的困惑是如何在同一个迭代中获取下一个元素,以便我可以做到a.put(b,nextElementToB).
有人可以通过使用流来帮助解决这个问题,因为我想尝试使用函数式编程吗?迭代将成为这样做的唯一方法吗?