Java类型转化
先随意写两个类
public class User {
private long id;
private String name= "zs" ;
private String password;
}
public class Student {
private Long id;
private String name;
private String password;
}
1、类型转化测试
public class ClassCastTest {
public static void main ( String [ ] args) {
User user = new User ( 1L , "zs" , "1234567" ) ;
Student student = ( Student ) user;
}
}
public class ClassCastTest {
public static void main ( String [ ] args) {
Object object = new User ( 1L , "zs" , "1234567" ) ;
User user = ( User ) object;
System . out. println ( user) ;
}
}
public class ClassCastTest {
public static void main ( String [ ] args) {
Object object = new User ( 1L , "zs" , "1234567" ) ;
Student student = ( Student ) object;
}
}
2、instanceof关键字
public class ClassCastTest {
public static void main ( String [ ] args) {
Object object = new User ( 1L , "zs" , "1234567" ) ;
cast ( object) ;
User user = new User ( ) ;
cast ( user) ;
Object object2 = new Student ( 1L , "xxs" , "666" ) ;
cast ( object2) ;
cast ( new Student ( ) ) ;
cast ( "12345" ) ;
}
private static void cast ( Object object) {
if ( object instanceof User ) {
User user = ( User ) object;
System . out. println ( user) ;
} else if ( object instanceof Student ) {
Student student = ( Student ) object;
System . out. println ( student) ;
} else {
System . out. println ( "不属于User或者Student类型" ) ;
}
}
}
3、Class对象比较
public class ClassCastTest {
public static void main ( String [ ] args) {
Object object = new User ( 1L , "zs" , "1234567" ) ;
cast ( object) ;
User user = new User ( ) ;
cast ( user) ;
Object object2 = new Student ( 1L , "xxs" , "666" ) ;
cast ( object2) ;
cast ( new Student ( ) ) ;
cast ( "12345" ) ;
}
private static void cast ( Object object) {
if ( object. getClass ( ) == User . class ) {
User user = ( User ) object;
System . out. println ( user) ;
} else if ( object. getClass ( ) == Student . class ) {
Student student = ( Student ) object;
System . out. println ( student) ;
} else {
System . out. println ( "不属于User或者Student类型" ) ;
}
}
}
public class ClassCastTest {
public static void main ( String [ ] args) {
Object object = new User ( 1L , "zs" , "1234567" ) ;
cast ( object) ;
User user = new User ( ) ;
cast ( user) ;
Object object2 = new Student ( 1L , "xxs" , "666" ) ;
cast ( object2) ;
cast ( new Student ( ) ) ;
cast ( "12345" ) ;
}
private static void cast ( Object object) {
if ( User . class . equals ( object. getClass ( ) ) ) {
User user = ( User ) object;
System . out. println ( user) ;
} else if ( Student . class . equals ( object. getClass ( ) ) ) {
Student student = ( Student ) object;
System . out. println ( student) ;
} else {
System . out. println ( "不属于User或者Student类型" ) ;
}
}
}