当我尝试使用非标准的HTTP方法,如PATCH和URLConnection:
HttpURLConnection conn = (HttpURLConnection) new URL("http://example.com").openConnection();
conn.setRequestMethod("PATCH");
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
java.net.ProtocolException: Invalid HTTP method: PATCH
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:440)
Run Code Online (Sandbox Code Playgroud)
使用像Jersey这样的更高级别的API会产生相同的错误.是否有解决方法来发出PATCH HTTP请求?
假设我有两个接口:
public interface I1
{
default String getGreeting() {
return "Good Morning!";
}
}
public interface I2
{
default String getGreeting() {
return "Good Afternoon!";
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想实现它们,将使用什么实现?
public class C1 implements I1, I2
{
public static void main(String[] args)
{
System.out.println(new C1().getGreeting());
}
}
Run Code Online (Sandbox Code Playgroud) 我刚刚看到了NaNin 的定义Double.class.它说:
/**
* A constant holding a Not-a-Number (NaN) value of type
* {@code double}. It is equivalent to the value returned by
* {@code Double.longBitsToDouble(0x7ff8000000000000L)}.
*/
public static final double NaN = 0.0d / 0.0;
Run Code Online (Sandbox Code Playgroud)
我知道,根据Java规范这些文字代表了同一个号码:0.0,0.0d,和0.0D.
另外对于其他常量,他们没有使用'd'后缀:
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
Run Code Online (Sandbox Code Playgroud)
为什么他们需要在NaN定义中将后缀d写入0.0的第一部分?
这是故意的还是偶然的?
xmlns拥有https协议的URI 更好吗?
例如,这是手册的推荐方式:
<http xmlns="http://www.springframework.org/schema/security"/>
Run Code Online (Sandbox Code Playgroud)
使用这种方式是合法的还是更好的?
<http xmlns="https://www.springframework.org/schema/security"/>
Run Code Online (Sandbox Code Playgroud)
xmlnsURI 定义的地址的XML解析器?xsi:schemaLocation属性下载模式?我有两个不同的pom.xml定义相同plugin(相同groupId和artifactId不同execution:-))的地方profiles.在executions以相同的定义phase,因此,为了通过从XML的顺序计算:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>echo</groupId>
<artifactId>test</artifactId>
<name>echo-test</name>
<version>1.0.0</version>
<packaging>pom</packaging>
<profiles>
<profile>
<id>1st-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>1st-antrun-echo</id>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>1st antrun plugin</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>2nd-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>maven-echo-plugin</artifactId>
<version>0.1</version>
<executions>
<execution>
<id>1st-soebes-echo</id>
<phase>test</phase>
<goals>
<goal>echo</goal>
</goals> …Run Code Online (Sandbox Code Playgroud) 我使用javax.websocket类连接到Java中的websocket服务器.
import javax.websocket.DeploymentException;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import java.io.IOException;
import java.net.URI;
public class WSClient {
private WebSocketContainer webSocketContainer;
public void sendMessage(URI endpointURI, String message) throws IOException, DeploymentException {
Session session = webSocketContainer.connectToServer(MyClientEndpoint.class, endpointURI);
session.getAsyncRemote().sendText(message);
}
}
Run Code Online (Sandbox Code Playgroud)
对于初始HTTP握手,我想在客户端向请求添加额外的HTTP标头
这可能吗?
我知道这可以在服务器端使用ServerEndpointConfig.Configurator.modifyHandshake.客户端是否有类似的解决方案?
我需要在Mockito中验证一个带有多个参数的方法,但需要只捕获一个参数,其他我只需要一个简单的匹配器.那可能吗?
例如,如果我有:
@Mock
private Map<K,V> mockedMap;
...
ArgumentCaptor<K> argument = ArgumentCaptor.forClass(K.class);
verify(mockedMap).put(argument.capture(), any(V.class));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我是否需要为每个参数编写一个captor,尽管我只需要捕获第一个参数?
Java支持多少个数组维度a[1][1][1][1]....[1]?我可以为数组声明无限数量的维度吗?
当我尝试在AppEngine中使用低级DataStore API时,我感到非常有趣ClassNotFoundException.此异常发生在云服务器中,而不是在本地实例中.我在当地使用appengine-java-sdk-1.7.4.
java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/DatastoreServiceFactory
at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47)
at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.DatastoreServiceFactory …Run Code Online (Sandbox Code Playgroud) 假设我创建了一个对象,并运行了父类的一个构造函数.使用此构造函数,在幕后创建父对象的新对象?
如果没有,private父类的字段存储在哪里?实际上,您可以调用父对象的任何方法(有或没有super),该对象操作调用对象不可见的私有字段.
如果有人最熟悉Java内存模型,那么非常欢迎他或她的回答!