小编Laf*_*ica的帖子

readUTF中的EOFException

EOFException在使用readUTF()方法时遇到问题,请告诉我如何解决此问题,并建议如何readUTF()在其他网络上传输套接字信息

import java.io.*;
import java.net.*;

public class GreetingServer {
    public static void main(String args[]) {
        String servername =args[0];
        int port = Integer.parseInt(args[1]);

        try {
            System.out.println("Server Name "+ servername +"Port"+port);

            Socket client = new Socket(servername,port);
            System.out.println("Just connected to"+ client.getRemoteSocketAddress());
            OutputStream outs = client.getOutputStream();
            DataOutputStream dout = new DataOutputStream(outs);
            dout.writeUTF("Hello From"+client.getRemoteSocketAddress());
            InputStream in = client.getInputStream();
            DataInputStream din = new DataInputStream(in);
            System.out.println("Server Says"+ din.readUTF());
            client.close();
        }
        catch (EOFException f) {
            f.printStackTrace();
        }
        catch(IOException e) {
            e.printStackTrace();
        } …
Run Code Online (Sandbox Code Playgroud)

java eofexception

4
推荐指数
2
解决办法
9395
查看次数

如何在CliBuilder中支持带有必需参数的帮助命令行参数

我正在使用CliBuilder解析Groovy脚本的命令行参数.在我定义的论点中,我有一个是强制性的.有没有办法支持一个-h,--help参数,打印命令用法没有关于缺少参数的恼人的错误消息?

例如,仅使用-h参数运行以下Groovy脚本:

def cli = new CliBuilder (usage:'test', stopAtNonOption:false)
cli.r (longOpt:'required', required:true, 'Required argument.')
cli.h (longOpt:'help', 'Prints this message')
def options = cli.parse (args)
Run Code Online (Sandbox Code Playgroud)

当它到达该def options = cli.parse (args)行时将生成下面的输出,并将自动停止脚本执行:

error: Missing required option: r
usage: test
 -h,--help       Prints this message
 -r,--required   Required argument.

我想只显示指定-hor --help参数时的用法,而不必删除required:true我所需参数的选项.这可能吗?

groovy command-line-parsing

4
推荐指数
1
解决办法
1630
查看次数

然后更好的方式在Java中使用(x instanceof y)吗?

我有这些代码行:

    public String getAccountType(BankAccount a){
       if(a instanceof RegularAccount)
           return "RA";
       else if(a instanceof SavingsAccount)
           return "SA";
       else if(a instanceof cityAccount)
           return "CLA";
       else if(a instanceof StateLawAccount)
           return "SLA";
       else if(a instanceof FederationLawAccount)
           return "FLA";
       else
           return null;
    }
Run Code Online (Sandbox Code Playgroud)

BankAccount是下面所有类的超类(抽象).在这个方法中,我只想返回String中的"a"类.

但是,我想知道是否有更好的方法来验证除这一堆if/else语句之外的"a"类.有吗?我能用switch语句吗?如果是这样,怎么样?

java if-statement instanceof abstract superclass

4
推荐指数
1
解决办法
568
查看次数

如何找出EnumMap中使用的枚举?

我有一个带有内部枚举和EnumMap的测试类,如下所示.如何找出EnumMap中使用的枚举?

enum MyEnum { ENUM1, ENUM2 }
EnumMap<MyEnum, String> emap = new EnumMap<>( MyEnum.class );
public void discover() {
  Class<?> eclass = ???;
  System.out.println( eclass );
}
Run Code Online (Sandbox Code Playgroud)

应该打印

MyEnum.class

java reflection enums

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

Eclipse Debug,更改BigDecimal上的变量值

如何BigDecimal在Variables部分的Eclipse中调试时提供值?

例如:

BigDecimal bd = new BigDecimal(21);
if(bd.equals(new BigDecimal(20))) {
..
}
Run Code Online (Sandbox Code Playgroud)

我已经在if语句上设置了断点,现在我想将bd值更改为20,以便我的if块在调试时执行.我尝试了很多方法,但是我收到了一个错误.

我试过new BigDecimal(21)但是我收到了一个错误.

java eclipse debugging bigdecimal

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

检查用户是否在页面上?

我有一个关于PHP的问题.

我已经创建了一个登录/注册页面,用户可以选择正确登录并离开进行注册.我已经完成了左右两边的包括login.phpregister.php我的地图的根.

问题是当用户输入login.phpregister.php在网址后面时,他们会进入没有风格等的实际页面.

如何检查用户是否在both.php页面上,如果他们尝试访问login.phpregister.php手动键入,则会自动将其重定向到both.php

php

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

你如何得到java中最后一个字符串的最后一个字符?

我需要获取最后一个输入字符串的最后一个字符.我写了一段代码,获取第一个字符串的最后一个字母:

public class LastCharacter {
    public static void main(String[] args) {
        String string = args[0];
        System.out.println("last character: " + string.substring(string.length() -1)); 
    }
}
Run Code Online (Sandbox Code Playgroud)

如何获取最后一个字符串参数的最后一个字符?

java string arguments character

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

引用另一个类的用户输入字符串?

我正在尝试编写一个程序,要求用户输入使用scanner类来命名.然后在一个完全不同的类中,引用该输入.

例如:

class TeamInfo {
    Scanner nScan = new Scanner(System.in);

public String GetName(){
    String GetName = nScan.nextLine();

}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,我第一次在TeamInfo类中引用GetName方法时,它可以工作 - 在正确的位置,它会提示输入团队名称.

但是,在此之后每次都会提示输入团队名称.我似乎无法在网上或在我的Java初学者指南中找到如何使此输入保持不变,以便我可以引用输入.我也不完全确定我在寻找什么,所以这没有用.

换句话说,我想要的是提示用户一次,然后记住该答案并一次又一次地重复使用它.

java

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

cvc-complex-type.2.4.a:从元素'bean'开始发现无效内容

我已经尝试了几个小时来解决这个问题.当我运行我的代码时,我得到一个错误说:

cvc-complex-type.2.4.a:从元素'bean'开始发现无效内容'{" http://www.springframework.org/schema/context "之一:include-filter," http:// www .springframework.org/schema/context ":exclude-filter}'是预期的.

我环顾四周寻找答案,一些建议是确保使用正确的版本.我在我的xml中使用与我的pom文件中相同的版本.(我正在使用maven和eclipse btw).

有关问题可能是什么的任何建议?

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.springframework.org/schema/beans" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.2.7.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.2.7.xsd">
    <context:component-scan base-package="org.mywebbapp.filemanagement">

    <bean
        class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean"
        id="FileStoreFactory">
        <property name="FileStore"
            value="org.mywebbapp.filemanagement.FileStoreFactory">
        </property>
    </bean>
    <alias alias="FH" name="FileHandler" />
</context:component-scan>
</beans>
Run Code Online (Sandbox Code Playgroud)

java spring xsd

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

抛出异常并将其捕获到别处

我想知道是否有可能编写一个方法来抛出异常并让另一个方法捕获这些异常.

例如,

public static void checkCircle() {
    try {
        checkPixel(a);
        checkPixel(b);
        checkPixel(c);
    } catch (MyException e) {
        System.out.println("not circle");
    } 

    private static void checkPixel(anything) {
        if (img.getRGB(xValue, yValue) != pOrigColour) {
            throw new MyException();
        }
    }

    class MyException extends Exception {
        public MyException() {
        }

        public MyException(String msg) {
            super(msg);
        }
    }
Run Code Online (Sandbox Code Playgroud)

事情是我想要checkPixel抛出一个方法MyException,表明没有圆圈,无论其他调用的结果如何.

java exception

0
推荐指数
1
解决办法
160
查看次数

在String上使用子字符串的替代方法

我有一个包含下划线的字符串,如下所示:

123445_Lisick

我想删除下划线后String中的所有字符.我已经尝试了下面的代码,它正在工作,但还有其他方法可以做到这一点,因为我需要将这个逻辑放在一个for循环中以从ArrayList中提取元素.

public class Test {
    public static void main(String args[]) throws Exception {
        String str = "123445_Lisick";
        int a = str.indexOf("_");
        String modfiedstr = str.substring(0, a);
        System.out.println(modfiedstr);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
666
查看次数

打印阵列时出现操作员错误并避免空值

我试图打印出数组中的细节,但避免打印出空值,这是我的短代码,任何人都可以看到为什么我得到错误"!运算符不能应用于小说"和"!运算符不能应用于非小说"

case 2:
    for (int i=0; i<5; i++){
        if (!fictionArray[i] = null){
            System.out.println(fictionArray);
        }
        if (!nonfictionArray[i] = null){
            System.out.println(nonfictionArray);
        }
    }

    break;
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
45
查看次数