Java判断8080端口存在返回success不存在返回filed
时间: 2023-12-09 16:06:42 浏览: 70
可以使用 Java 的 Socket 类来判断端口是否存在,代码如下:
```java
import java.net.Socket;
public class PortChecker {
public static void main(String[] args) {
String host = "localhost";
int port = 8080;
try {
Socket socket = new Socket(host, port);
System.out.println("success");
socket.close();
} catch (Exception e) {
System.out.println("filed");
}
}
}
```
这个程序会尝试连接本地的 8080 端口,如果连接成功,则输出 "success",否则输出 "filed"。你可以根据自己的需求,修改 host 和 port 的值。
相关问题
java反射filed类 set方法
Java反射中,Field类的set方法用于设置指定对象中的指定字段的值。该方法需要两个参数:第一个参数是要设置值的对象,第二个参数是要设置的值。例如:
```
public class Person {
private String name;
private int age;
// 省略getter和setter方法
}
public static void main(String[] args) throws Exception {
Person person = new Person();
Field nameField = person.getClass().getDeclaredField("name");
nameField.setAccessible(true); // 设置为可访问
nameField.set(person, "张三"); // 设置name字段的值为"张三"
Field ageField = person.getClass().getDeclaredField("age");
ageField.setAccessible(true); // 设置为可访问
ageField.set(person, 18); // 设置age字段的值为18
}
```
java.lang.IllegalArgumentException no filed
引用中的异常信息 "java.lang.IllegalArgumentException: Can not set java.lang.Integer field reflect.FieldTrouble.val to (int)42" 表示在设置一个 Integer 类型的字段时,传入了一个 int 类型的值,导致类型不匹配,从而抛出了 IllegalArgumentException 异常。
在 Java 中,如果要通过反射来设置一个字段的值,需要使用 Field 类的 set 方法。set 方法有两个参数,第一个参数是要设置值的对象,第二个参数是要设置的值。如果要设置的值的类型与字段的类型不匹配,就会抛出 IllegalArgumentException 异常。
引用中提到,NoSuchFieldException 和 IllegalAccessException 异常也可能在使用反射设置字段值时抛出。NoSuchFieldException 表示要设置的字段不存在,IllegalAccessException 表示没有权限访问该字段。
引用中的代码演示了如何使用反射获取字段的类型和泛型类型。在该代码中,通过 Class 类的 getField 方法获取指定名称的字段,然后使用 Field 类的 getType 方法获取字段的类型,使用 getGenericType 方法获取字段的泛型类型。
阅读全文