标签:模拟 net util oid false date() 创建 tail style
一 instanceof运算符
二代码示例
1 public class InstanceofTest 2 { 3 public static void main(String[] args) 4 { 5 // 声明hello时使用Object类,则hello的编译类型是Object, 6 // Object是所有类的父类, 但hello变量的实际类型是String 7 Object hello = "Hello"; 8 // String与Object类存在继承关系,可以进行instanceof运算。返回true。 9 System.out.println("字符串是否是Object类的实例:" 10 + (hello instanceof Object)); 11 System.out.println("字符串是否是String类的实例:" 12 + (hello instanceof String)); // 返回true。 13 // Math与Object类存在继承关系,可以进行instanceof运算。返回false。 14 System.out.println("字符串是否是Math类的实例:" 15 + (hello instanceof Math)); 16 // String实现了Comparable接口,所以返回true。 17 System.out.println("字符串是否是Comparable接口的实例:" 18 + (hello instanceof Comparable)); 19 String a = "Hello"; 20 // // String类与Math类没有继承关系,所以下面代码编译无法通过 21 // System.out.println("字符串是否是Math类的实例:" 22 // + (a instanceof Math)); 23 } 24 }
运行结果
字符串是否是Object类的实例:true
字符串是否是String类的实例:true
字符串是否是Math类的实例:false
字符串是否是Comparable接口的实例:true
三应用场景
下面我来模拟一个简单的应用场景,加深记忆并与同学们分享交流
1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 4 public class Test{ 5 6 public static void main(String[] args) { 7 Object object = new Date(); 8 print(object); 9 } 10 11 public static void print(Object object) { 12 Date date = (Date) object; 13 String format = "yyyy-MM-dd HH:mm:ss"; 14 String result = new SimpleDateFormat(format).format(date); 15 System.out.println(result); 16 } 17 }
场景分析:无法保证传入print方法的实参一定为Date对象,如果传入的不是由Date或其子类创建的对象,那么以上代码就会引发“java.lang.ClassCastException”异常,这时我们可以使用instanceof运算符,用于强制类型转换之前检查对象的真实类型以避免类型转换异常,从而提高代码健壮性。
1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 4 public class Test{ 5 6 public static void main(String[] args) { 7 Object object = new String(); 8 print(object); 9 } 10 11 public static void print(Object object) { 12 if (object instanceof Date) { 13 Date date = (Date) object; 14 String format = "yyyy-MM-dd HH:mm:ss"; 15 String result = new SimpleDateFormat(format).format(date); 16 System.out.println(result); 17 }else { 18 System.out.println("请传入由Date类或其子类创建的对象。"); 19 } 20 } 21 }
参考链接:https://blog.csdn.net/qq_40831381/article/details/81288457
标签:模拟 net util oid false date() 创建 tail style
原文地址:https://www.cnblogs.com/superzxz/p/12218878.html