`
simen_net
  • 浏览: 306242 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA相同接口类的强制转换问题

阅读更多

接口文件:Itest.java

package comm;

public interface Itest {
  
  public String getStrTemp();
  
  public void setStrTemp(String strTemp);
  
}

 Test.java

package comm;

public class Test implements Itest {
  public String strTemp;
  
  public String getStrTemp() {
    return strTemp;
  }
  
  public void setStrTemp(String strTemp) {
    this.strTemp = strTemp;
  }
}

 Test1.java

package comm;

public class Test implements Itest {
  public String strTemp;
  
  public String getStrTemp() {
    return strTemp;
  }
  
  public void setStrTemp(String strTemp) {
    this.strTemp = strTemp;
  }
}

  运行代码

  public static void main(String[] args) {
    Itest t = new Test();
    t.setStrTemp("test");
    System.out.println(t);
    Itest t1 = (Test1) t;
    System.out.println(t1.getStrTemp());
  }

 正常提示错误:java.lang.ClassCastException

 

请问有没有办法实现 Test 和 Test1 之间的互相转换

分享到:
评论
2 楼 Julysea 2008-06-06  
Itest t1 = (Test1) t; 一句中t已经是Itest的实例,假设可以执行,也属多余。
单就Test和Test1的互换可以适用适配器模式来做
1 楼 rasonyang 2008-06-06  
只能用BeanUtils或者CGLIB的copy方法。

相关推荐

    \\java类、抽象类、接口、继承和对象解析 .doc

    Java 类、抽象类、接口和继承是面向对象编程的核心概念,它们构成了 Java 语言的基石。在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板...

    Java基础知识笔试题及答案

    泛型可以提高 Java 程序的类型安全,消除强制类型转换,提高代码的重用率。 九、Java 封装 Java 封装是指把数据项和方法隐藏在对象的内部,把方法的实现内容隐藏起来。Java 中的封装类有 Double、Integer、Float、...

    java 继承泛型类示例

    在Java编程语言中,泛型是一种强大的特性,它允许我们在类、接口和方法中使用类型参数,从而提高代码的灵活性和安全性。当我们谈论“继承泛型类”时,这意味着一个类(子类)正在扩展一个已经定义了泛型的类(父类)...

    Java试题综合(全),类,对象,接口,基本语法等

    双精度数强制转换为单精度数会损失精度,而不是提高。方法可以有多个重载版本,通过参数列表来区分,而不仅仅是返回类型。在方法体内,局部变量可以与类外部的变量同名,但作用域不同。一个对象必须属于某个特定的类...

    java源码包---java 源码 大量 实例

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java全集.pdf JAVA全集

    - **集合接口类层次**:顶层接口`Collection`和`Map`。 - **集合类层次**:`List`、`Set`、`Map`等接口的具体实现类。 - **五个最常用的集合类之间的区别和联系**:ArrayList、LinkedList、HashSet、TreeSet、...

    【IT十八掌徐培成】Java基础第06天-03.多态-类多态-接口多态-同名属性问题.zip

    若要访问子类中同名的属性,需要将对象强制转换为子类类型,然后通过子类引用进行访问,这被称为向下转型。 在实际编程中,应尽量避免在父子类之间定义同名属性,因为这可能导致混淆和难以维护的代码。如果确实需要...

    The Java Language Specification, Java SE 6 Edition.rar

    接口是实现多态的一种方式,通过实现接口,不同类可以共享相同的接口方法。 6. 枚举:Java 5引入了枚举类型,Java 6进一步完善。枚举是一种特殊的类,用于定义一组相关的常量,每个枚举实例都是独立的对象。枚举...

    java常见问题.doc

    不同类型间的转换需要注意转换方向,数值类型的自动和强制转换,以及字符串到数值类型转换需要使用包装类的方法。 在 Java 中,数组被视为对象,与 C++ 的数组有所不同。一维数组的声明和初始化在 Java 中更像对象...

    面向对象的程序设计(JAVA)第一次作业

    10. 要使代码编译通过,需要将子类Y的实例x2强制转换为Y类型,然后调用do2()方法,因此: - A) `x2.do();`错误,因为do2()不是X类的方法。 - B) `(Y)x2.do2();`语法错误,do2()不是一个方法调用。 - C) `((Y)x2)....

    CoreJava学习笔记

    1. **说明**:泛型允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的。 2. **用法**:泛型可以通过在类名后面加上尖括号来使用,例如`List<String>`。 Java 5.0引入的这些新特性极大地提高了Java的...

    2JAVA编程高级-集合类.pdf

    泛型是Java集合框架中的一个重要特性,它允许编译器检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率和类型安全性。 **泛型的基本用法**: ```java List<String> stringList = new ...

    java面试常问的问题

    11. **short变量加法**:直接相加会导致类型提升,需要强制转换;使用`+=`则会自动处理类型转换。 12. **sleep() 和 wait()**:sleep()让当前线程休眠,不会释放锁;wait()使线程等待,释放锁,需在同步控制块中...

    java基础f复习

    - **显式转换**(强制类型转换):从高精度类型向低精度类型转换时,需要使用强制类型转换,可能会导致数据丢失。 - **注意事项**:转换的前提是数据类型兼容,且`boolean`类型不能与其他类型相互转换。 3. **...

    java经典教材笔记

    继承允许一个类继承另一个类的属性和方法,接口则定义了一组方法规范,多态让不同类的对象能够响应相同的消息,而抽象类和接口则用于定义抽象的和未实现的方法。 异常处理在Java编程中同样重要,它涉及到错误和异常...

    Java面试宝典 Java面试宝典

    本资源摘要信息涵盖了Java面试中的常见问题,涵盖了Java基础知识、Java面向对象编程、Java多态、Java继承、Java接口、Java抽象类、Java内部类等方面,旨在帮助Java开发者快速了解Java的基础知识和高级概念。

    java jdk java1.8chm 中英文帮组文档

    这使得接口可以扩展其行为而无需强制实现类重写所有方法。 6. **类型接口**:Java 8引入了泛型的类型接口,如`Optional<T>`,用于表示可为空的值,以避免空指针异常。 7. **Nashorn JavaScript引擎**:Java 8中...

    文章分类:Java编程,java面试题1

    ` 会导致类型转换错误,因为 `s1 + 1` 的结果默认为 int 类型,需要显式强制转换为 short 类型。 - `short s1 = 1; s1 += 1;` 没有问题,编译器会自动处理类型转换。 ### Java 中的 goto 语句 10. **Java 是否...

    Java的笔记,记录Java的基础知识

    泛型是Java SE 5.0引入的新特性,用于在编译时检查类型安全,减少强制类型转换,提高代码的可读性和可维护性。 十、模块系统(Java 9及以上版本) Java 9引入了模块系统,通过明确地声明模块间的依赖关系,改善了...

Global site tag (gtag.js) - Google Analytics