相同类型的强制类型转换是否会被触发?

对一个看似简单的问题疑惑不解,希望有大牛可以解答详细原理:

代码如下:

[code="java"]
String a = "javaeye";
String b = (String)a;
[/code]

[list]
[*]不知道这样做是否会发生强制类型转换?
[*]
[*]如果会发生,是否和不同类型间(如继承关系)的强制类型转换步骤一致?
[/list]

多谢了。
[b]问题补充:[/b]
那么这样会强制类型转换吗?

[code="java"]
public class Simple
{
private T type;

public T getType()
{
    return type;
}

@SuppressWarnings("unchecked")
public <M> void setType2(M type)
{
    this.type = (T)type;
}

public static void main(String[] args)
{
    String typer = "vvvvvvv";

    Simple<String> aSimple = new Simple<String>();

    aSimple.setType2(typer);
}

}
[/code]

这样会发生强制类型转换吗?

泛型类型的擦除问题,

编译器会自动插入强制类型转换!

语言本身在运行时是可以确定一个对象的类型的,
因为a本身就是个string类型,
String b = (String)a; 应该不会发现强制类型转换r

你明白什么叫强制转换,强转是发生在父子类之间的比较多,像你这种情况,不会发生强转的,因为他们本身就是一个类型,谈不上强转的

一.Java 的自动转换
如果下列2个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatic type conversion):
1.这2种类型是兼容的。
2.目的类型数的范围比来源类型的大。
当以上2个条件都满足时,拓宽转换(widening conversion )发生。例如,int 型的范围比所有byte 型的合法范围大,因此不要求显式强制类型转换语句。
对于拓宽转换,数字类型,包括整数(integer )和浮点(floating-point )类型都是彼此兼容的,但是,数字类型和字符类型(char)或布尔类型(bollean )是不兼容的。字符类型(char )和布尔类型(bollean )也是互相不兼容的。
二. 不兼容类型的强制转换
尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将int 型的值赋给一个byte 型的变量,你将怎么办?这种转换不会自动进行,因为byte 型的变化范围比int 型的要小。这种转换有时称为“缩小转换”(),因为你肯定要将源数据类型的值变小才能适合目标数据类型。

楼主仔细看看,你这根本是同一种类型,不存在自动转换或者强制转换

你这样根本不会发生强制类型的转换,这就是谱通赋值语句

不管你怎么套马甲 就是同一种类型啊

建议好好看看《JAVA2核心技术第7版卷1基础知识》的泛型一章

当然不会的.你还没明白我刚才跟你说的,强转是发生在父子类间的转换.给你打个形像的比喻,在同一时期的自己的衣服你自己穿还用去裁缝那改大小吗?但是如果你的衣服给你儿子穿或给你老爸穿可能会不合适,所以要去改大小.