我最近接受了一次采访,他们问我核心Java中的两个问题.
问1.
我们可以编写一个java类:
Run Code Online (Sandbox Code Playgroud)public static int main(String[] args){ System.out.println("Hello");
我回答:没有.编译器不会编译它,因为它是预期的返回类型main是int,虽然我们可以重载它.
问题2:我无法回答的下一个问题.
编写一个程序,以便您的Java
main方法可以返回一些东西.即你怎么能
public static void main([] args)回报什么?
任何人都可以帮我解答这个问题吗?
我需要帮助.在我目前的开发中,其中一个要求是:
服务器将返回200-OK作为响应(httpresponse).
如果验证了小组成员,那么服务器也必须返回该小组成员的小组成员ID.
服务器将以下列方式将panelist id放在200-OK响应的主体内:
<tdcp>
<cmd>
<ack cmd=”Init”>
<panelistid>3849303</panelistid>
</ack>
</cmd>
Run Code Online (Sandbox Code Playgroud)
现在我可以把httpresponse作为
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
Run Code Online (Sandbox Code Playgroud)
我可以把
String responseToClient= "<tdcp><cmd><ack cmd=”Init”><panelistid>3849303</panelistid></ack></cmd></tdcp>";
现在将上面的xml放在200-OK响应体内的意思是什么呢?它是如何实现的?
继续我之前在链接中的查询:Java 10上的Swing问题,我发现了一些问题(仅突出显示错误),这次我发现在转移到Java 10之后问题主要出现在Collection API中.
以下是错误.想知道Java 10从Java 8迁移时是否有任何重大变化(从Collection/Generics的角度来看).
[javac] C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\src\com\osm\ui\tree\WMTreeNode.java:159: error: breadthFirstEnumeration() in WMTreeNode cannot override breadthFirstEnumeration() in DefaultMutableTreeNode
[javac] public Enumeration<?extends WMTreeNode> breadthFirstEnumeration() {
[javac] ^
[javac] return type Enumeration<? extends WMTreeNode> is not compatible with Enumeration<TreeNode>
[javac] C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\src\com\osm\ui\tree\WMTreeNode.java:158: error: method does not override or implement a method from a supertype
[javac] @Override
[javac] ^
[javac] C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\src\com\osm\ui\tree\WMTreeNode.java:164: error: depthFirstEnumeration() in WMTreeNode cannot override depthFirstEnumeration() in DefaultMutableTreeNode
[javac] public Enumeration<?extends WMTreeNode> depthFirstEnumeration() {
[javac] ^
[javac] return type Enumeration<? …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试将我们的应用程序从Java 8迁移到Java 10,并且在几个月内将转向Java 11.
我们有一个遗留系统,它使用了一些API,我猜这些API会被移除或删除.我们使用ant脚本(1.10.1)进行应用程序编译.
以下是构建我们的应用程序的部分:
<target name="javac-setup" depends="flags, with.clover, jaxb-apply, flamingo.javac"/>
<target name="javac" depends="javac-setup">
<mkdir dir="${workmanager.dir.classes}"/>
<javac destdir="${workmanager.dir.classes}" deprecation="on" debug="${javac.debug}" encoding="iso-8859-1" includeantruntime="false">
<compilerarg line="-Xlint:static"/>
<compilerarg line="-Xlint:unchecked"/>
<compilerarg line="-Xlint:overrides"/>
<compilerarg line="-Xmaxerrs 9999" />
<compilerarg line="-Xmaxwarns 9999" />
<compilerarg value="-Werror"/>
<src path="${workmanager.dir.src}"/>
<src path="${webservices.dir.java.src}"/>
<patternset refid="java.sources"/>
<classpath refid="classes.classpath"/>
</javac>
</target>
Run Code Online (Sandbox Code Playgroud)
在编译期间,在转移到Java 10之后,我得到的几个与Java Swing相关的错误(再次是旧的,但必须使用它).因为我还没有完全意识到Java 10中发生的所有更改,对我来说它看起来很像喜欢这个问题与模块化概念有关.虽然还在学习,但不确定.我知道你的建议,知道这些错误是否与模块化有关.还有任何建议或提示来解决这些问题?
以下是错误:
[javac] Compiling 3253 source files to C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\classes
[javac] C:\WorkSpace\JAVA10\oswm\rel20.10_Patches\WorkManager\src\com\osm\datamgmt\report\ui\AssignPosNumberToolbar.java:26: error: package com.sun.java.swing.plaf.windows is not visible
[javac] import com.sun.java.swing.plaf.windows.WindowsButtonUI;
[javac] ^
[javac] (package com.sun.java.swing.plaf.windows is declared in …Run Code Online (Sandbox Code Playgroud) 我们正在迁移旧代码,实际上相当旧的代码到 Java 11。我在编译其中一个类时遇到问题。示例代码是:
package XXXX;
import java.lang.ref.*;
import sun.security.action.*;
import java.security.*;
import java.io.*;
class Converters
{
private static Object lock;
private static String converterPackageName;
private static String defaultEncoding;
public static final int BYTE_TO_CHAR = 0;
public static final int CHAR_TO_BYTE = 1;
private static final String[] converterPrefix;
private static SoftReference[] classCache;
static /* synthetic */ Class class$sun$io$Converters;
private static String getConverterPackageName() {
final String converterPackageName = Converters.converterPackageName;
if (converterPackageName != null) {
return converterPackageName;
}
String converterPackageName2 = AccessController.doPrivileged((PrivilegedAction<String>)new GetPropertyAction("file.encoding.pkg")); …Run Code Online (Sandbox Code Playgroud)