小编Joh*_*ost的帖子

Java在if结尾处继续

我有一些书中的示例代码,作者总是在if结尾处使用continue.

例:

int a = 5;
if(a == 5)
{
// some code
continue;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这没有任何意义.可能背后有某种质量管理推理还是我错过了一些更重要的观点?

java if-statement continue

9
推荐指数
2
解决办法
5万
查看次数

Java Dom解析器报告错误的子节点数

我有以下xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="0" firstname="John"/>
</users>
Run Code Online (Sandbox Code Playgroud)

然后我试图用java解析它,但getchildnodes报告错误的子节点数.

Java代码:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(this.file);
document.getDocumentElement().normalize();
Element root = document.getDocumentElement();
NodeList nodes = root.getChildNodes();
System.out.println(nodes.getLength());
Run Code Online (Sandbox Code Playgroud)

结果:3

此外,我正在获取用于访问节点属性的NPE,因此我猜测某些内容非常糟糕.

java xml dom children

6
推荐指数
1
解决办法
4256
查看次数

拦截 WM_CLOSE 进行清理操作

我有一个外部应用程序调用我的应用程序,并应该在工作完成后结束它。该外部应用程序的日志声称它WM_CLOSE在我的应用程序上使用。

如何拦截WM_CLOSE应用程序中的消息以执行一些清理操作?我尝试at_exit()将其包装在一个类中,但我认为我的方法是错误的。

c++ winapi termination exit

5
推荐指数
2
解决办法
7007
查看次数

使用chomp()时打印失败

所以我在使用while循环遍历套接字时遇到了这个问题.

当我使用它时,它完全正常,但我对每一个都有新行$message,我不想要.

my $socket = new IO::Socket::INET (
    LocalHost => "127.0.0.1", 
    LocalPort => "12345", 
    Proto => 'tcp', 
    Listen => 1, 
    Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
    my $message = $_;
    print $message;
}
Run Code Online (Sandbox Code Playgroud)

但是当我添加chomp时,循环仅在我断开客户端时完成(我理解为什么).我的猜测是chomp从$_变量中删除了换行符,因此循环将不再起作用.

my $socket = new IO::Socket::INET (
    LocalHost => "127.0.0.1", 
    LocalPort => "12345", 
    Proto => 'tcp', 
    Listen => 1, 
    Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
    my $message = $_;
    chomp($message);
    print $message;
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何在没有消息中的换行符的情况下遍历套接字(换行符已终止)?

谢谢你!

sockets perl loops while-loop chomp

3
推荐指数
1
解决办法
258
查看次数

Java类字段通过引用?

我创建了以下测试,以了解Java如何处理对象,这让我感到困惑.

public class MyClass
{
    public String text = "original";
    public MyClass(String text)
    {
        this.text = text;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了以下两个场景:

1.

String object1 = new String("original");
String object2 = new String("original");
object2 = object1;
object2 = "changed";
System.out.println(object1);
System.out.println(object2);
Run Code Online (Sandbox Code Playgroud)

结果:

original
changed
Run Code Online (Sandbox Code Playgroud)

2.

MyClass object1 = new MyClass("object1");
MyClass object2 = new MyClass("object2");
object2 = object1;
object2.text = "changed";
System.out.println(object1.text);
System.out.println(object2.text);
Run Code Online (Sandbox Code Playgroud)

结果:

changed
changed
Run Code Online (Sandbox Code Playgroud)

现在为什么文本字段像静态字段一样被共享?

java static field reference object

3
推荐指数
1
解决办法
3813
查看次数

Java未定义的泛型类型

我有一个泛型类,它扩展了另一个泛型类.

抽象类有2个类型参数,但我的函数只需要一个.

是保存只是像String类型一样随机分配,还是有任何缺点?

public abstract class AbstractFoo<T, B>
{
   public abstract void read(T item);
}

public class LittleFoo extends AbstractFoo<byte[], String>
{
   @Override
   public void read(byte[] item)
   {
      // work here
   }
}
Run Code Online (Sandbox Code Playgroud)

java generics types

2
推荐指数
1
解决办法
628
查看次数