用Java写一个判断任意对象是否为空的工具
时间: 2024-04-21 17:22:48 浏览: 92
你可以使用以下代码来判断任意对象是否为空:
```java
public class ObjectUtils {
public static boolean isNull(Object obj) {
return obj == null;
}
public static boolean isNotNull(Object obj) {
return !isNull(obj);
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
String str = null;
System.out.println(ObjectUtils.isNull(str)); // 输出 true
str = "Hello";
System.out.println(ObjectUtils.isNotNull(str)); // 输出 true
}
}
```
在上面的代码中,`isNull`方法会判断传入的对象是否为null,如果是null则返回true,否则返回false。`isNotNull`方法则是`isNull`方法的反向判断。
这样你就可以使用`ObjectUtils.isNull(obj)`来判断任意对象是否为空了。希望对你有所帮助!
相关问题
java 代码实现一个可以判断任意是空的工具类
好的,我可以为您提供一个判断任意对象是否为空的工具类的 Java 代码实现:
``` java
public class EmptyUtils {
/**
* 判断对象是否为空
* @param obj 待判断的对象
* @return true:对象为空 false:对象不为空
*/
public static boolean isEmpty(Object obj) {
if(obj == null) {
return true;
}
if(obj instanceof CharSequence) {
return ((CharSequence) obj).length() == 0;
}
if(obj instanceof Collection) {
return ((Collection) obj).isEmpty();
}
if(obj instanceof Map) {
return ((Map) obj).isEmpty();
}
if(obj instanceof Object[]) {
Object[] object = (Object[]) obj;
if(object.length == 0) {
return true;
}
boolean empty = true;
for(Object anObject : object) {
if(!isEmpty(anObject)) {
empty = false;
break;
}
}
return empty;
}
if(obj.getClass().isArray()) {
if(java.lang.reflect.Array.getLength(obj) == 0) {
return true;
}
boolean empty = true;
for(int i = 0; i < java.lang.reflect.Array.getLength(obj); i++) {
if(!isEmpty(java.lang.reflect.Array.get(obj, i))) {
empty = false;
break;
}
}
return empty;
}
return false;
}
}
```
以上是判断任意对象是否为空的工具类的 Java 代码实现,您可以自行引入到您的项目中使用。
如何利用Java编写一个万年历对象,该对象能够判断任意日期是否为工作日或特定节假日,并提供相应的代码示例?
在Java项目中实现一个万年历对象,用于判断工作日和特定节假日,首先需要理解日期时间处理的相关知识。在Java中,我们可以使用Calendar类来操作日期,但在面对复杂的节假日判断逻辑时,建议创建一个专门的类来处理这些任务。以下是一个简单的实现示例:
参考资源链接:[Java判断节假日工具类的实现与应用](https://wenku.csdn.net/doc/3n8e5enhiz?spm=1055.2569.3001.10343)
首先,定义一个HolidayCalendar类,该类包含节假日的数据以及判断日期是否为节假日的逻辑:
```java
import java.util.Calendar;
import java.util.GregorianCalendar;
public class HolidayCalendar {
// 假设已经初始化了节假日数据,例如国定假日等
public boolean isHoliday(Calendar date) {
// 通过比较日期来判断是否为节假日
// 示例仅考虑了新年元旦一天,实际应包含所有节假日数据
Calendar newYearDay = new GregorianCalendar(date.get(Calendar.YEAR), Calendar.JANUARY, 1);
return isSameDay(date, newYearDay);
}
// 辅助方法,判断两个Calendar对象是否代表同一日期
private boolean isSameDay(Calendar cal1, Calendar cal2) {
return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) &&
cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR));
}
}
```
然后,我们可以定义一个通用的DateUtil类,其中包含获取当前日期的方法和判断是否为工作日的方法:
```java
import java.util.Calendar;
public class DateUtil {
public static Calendar getCurrentDate() {
return Calendar.getInstance();
}
public static boolean isWorkday(Calendar date) {
// 判断是否为周六或周日
int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);
boolean isWeekend = dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY;
// 调用HolidayCalendar判断是否为节假日
HolidayCalendar holidayCalendar = new HolidayCalendar();
boolean isHoliday = holidayCalendar.isHoliday(date);
// 如果不是周末且不是节假日,则为工作日
return !isWeekend && !isHoliday;
}
}
```
最后,你可以使用这些方法来判断任意日期是否为工作日或节假日:
```java
public static void main(String[] args) {
Calendar dateToCheck = Calendar.getInstance();
dateToCheck.set(Calendar.YEAR, 2023);
dateToCheck.set(Calendar.MONTH, Calendar.JANUARY);
dateToCheck.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(
参考资源链接:[Java判断节假日工具类的实现与应用](https://wenku.csdn.net/doc/3n8e5enhiz?spm=1055.2569.3001.10343)
阅读全文