C# 代码将 void 作为参数传递? Java 里的是什么?
C# code passing void as argument? What's that in Java?
我正在将一个小程序从 C# 翻译成 Java。
我还想知道 1 行:
Thread eventReadingThread = new Thread(() => ReadEvents(url, streamingMode));
...
static void ReadEvents(String serviceURL, bool streamingMode)
{
if (streamingMode)
{
WebRequest httpClient = WebRequest.Create(serviceURL);
httpClient.Method = "GET";
byte[] buffer = new byte[4096];
...
我把这里的第一行解释为"True if ReadEvents returns less than empty array"。然而,这没有任何意义,因为 void 参数无法编译,而且布尔参数不适合 Thread 的构造函数。
这在 Java 中会是什么?
首先,
static void ReadEvents
并不意味着 ReadEvents return 在任何情况下都是正确的。 void 关键字表示该方法没有 return(就像 VB 中的 Sub)。
其次,您将数组定义为:
byte[] buffer = new byte[4096];
byte 的默认值为 0,因此您实际上没有一个空数组,而是一个 4096 字节的数组,值为 0。除非代码中的某个地方(您没有显示)将数组重新定义为 byte[] 或 null.
What would it be in Java?
在 Java 8 中,您只需将 =>
变为 ->
。
{
Thread thread = new Thread(() -> readEvents(url, streamingMode));
}
static void readEvents(String serviceUrl, boolean streamingMode) {
// ...
}
I interpret the first line here as .... What is the code trying to do?
您需要阅读调用方法 readEvents
的 lambda expressions (Java, C#). In this case it is "create me a Runnable
or ThreadStart
。
我正在将一个小程序从 C# 翻译成 Java。 我还想知道 1 行:
Thread eventReadingThread = new Thread(() => ReadEvents(url, streamingMode));
...
static void ReadEvents(String serviceURL, bool streamingMode)
{
if (streamingMode)
{
WebRequest httpClient = WebRequest.Create(serviceURL);
httpClient.Method = "GET";
byte[] buffer = new byte[4096];
...
我把这里的第一行解释为"True if ReadEvents returns less than empty array"。然而,这没有任何意义,因为 void 参数无法编译,而且布尔参数不适合 Thread 的构造函数。
这在 Java 中会是什么?
首先,
static void ReadEvents
并不意味着 ReadEvents return 在任何情况下都是正确的。 void 关键字表示该方法没有 return(就像 VB 中的 Sub)。
其次,您将数组定义为:
byte[] buffer = new byte[4096];
byte 的默认值为 0,因此您实际上没有一个空数组,而是一个 4096 字节的数组,值为 0。除非代码中的某个地方(您没有显示)将数组重新定义为 byte[] 或 null.
What would it be in Java?
在 Java 8 中,您只需将 =>
变为 ->
。
{
Thread thread = new Thread(() -> readEvents(url, streamingMode));
}
static void readEvents(String serviceUrl, boolean streamingMode) {
// ...
}
I interpret the first line here as .... What is the code trying to do?
您需要阅读调用方法 readEvents
的 lambda expressions (Java, C#). In this case it is "create me a Runnable
or ThreadStart
。