import java.util.* ;
import java.lang.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
static < T> List< T> [ ] getArrayOfGenericObjects1( List< T> ... a ) {
objectArray
[ 0 ] = new ArrayList
<> ( Arrays .
asList ( 6 ,
7 ) ) ; // Ему вообще всё равно,
T t = a[ 0 ] .get ( 0 ) ;
System .
out .
println ( t.
getClass ( ) ) ; // что в себе хранить, потому что при type erasure T заменяется на Object
t = a[ 1 ] .get ( 0 ) ;
System .
out .
println ( t.
getClass ( ) ) ; return a;
}
static List< String> [ ] getArrayOfGenericObjects2( List< String> ... a ) {
objectArray
[ 0 ] = new ArrayList
<> ( Arrays .
asList ( 1 ,
2 ) ) ; // Вот тут справедливо возникает ClassCastException
// String s = a[0].get(0);
return a;
}
{
List< String> [ ] arrayOfStringLists = getArrayOfGenericObjects2(
new ArrayList
<> ( Arrays .
asList ( "1" ,
"2" ) ) ,
new ArrayList
<> ( Arrays .
asList ( "3" ,
"4" ,
"5" ) ) ) ;
arrayOfStringLists = getArrayOfGenericObjects1(
new ArrayList
<> ( Arrays .
asList ( "1" ,
"2" ) ) ,
new ArrayList
<> ( Arrays .
asList ( "3" ,
"4" ,
"5" ) ) ) ;
List< String> stringList = arrayOfStringLists[ 0 ] ;
// Но вот тут это ClassCastException
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIHsKICAgIHN0YXRpYyA8VD4gTGlzdDxUPltdIGdldEFycmF5T2ZHZW5lcmljT2JqZWN0czEoTGlzdDxUPi4uLiBhKSB7CiAgICAgICAgT2JqZWN0W10gb2JqZWN0QXJyYXkgPSBhOwogICAgICAgIG9iamVjdEFycmF5WzBdID0gbmV3IEFycmF5TGlzdDw+KEFycmF5cy5hc0xpc3QoNiwgNykpOwogICAgICAgIC8vINCV0LzRgyDQstC+0L7QsdGJ0LUg0LLRgdGRINGA0LDQstC90L4sCiAgICAgICAgVCB0ID0gYVswXS5nZXQoMCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0Q2xhc3MoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQpOwogICAgICAgIC8vINGH0YLQviDQsiDRgdC10LHQtSDRhdGA0LDQvdC40YLRjCwg0L/QvtGC0L7QvNGDINGH0YLQviDQv9GA0LggdHlwZSBlcmFzdXJlIFQg0LfQsNC80LXQvdGP0LXRgtGB0Y8g0L3QsCBPYmplY3QKICAgICAgICB0ID0gYVsxXS5nZXQoMCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0Q2xhc3MoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQpOwogICAgICAgIHJldHVybiBhOwogICAgfQoKICAgIHN0YXRpYyBMaXN0PFN0cmluZz5bXSBnZXRBcnJheU9mR2VuZXJpY09iamVjdHMyKExpc3Q8U3RyaW5nPi4uLiBhKSB7CiAgICAgICAgT2JqZWN0W10gb2JqZWN0QXJyYXkgPSBhOwogICAgICAgIG9iamVjdEFycmF5WzBdID0gbmV3IEFycmF5TGlzdDw+KEFycmF5cy5hc0xpc3QoMSwgMikpOwogICAgICAgIC8vINCS0L7RgiDRgtGD0YIg0YHQv9GA0LDQstC10LTQu9C40LLQviDQstC+0LfQvdC40LrQsNC10YIgQ2xhc3NDYXN0RXhjZXB0aW9uCiAgICAgICAgLy8gU3RyaW5nIHMgPSBhWzBdLmdldCgwKTsKICAgICAgICByZXR1cm4gYTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KICAgIHsKICAgICAgICBMaXN0PFN0cmluZz5bXSBhcnJheU9mU3RyaW5nTGlzdHMgPSBnZXRBcnJheU9mR2VuZXJpY09iamVjdHMyKAogICAgICAgIAluZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdCgiMSIsICIyIikpLAogICAgICAgIAluZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdCgiMyIsICI0IiwgIjUiKSkKCQkpOwoKICAgICAgICBhcnJheU9mU3RyaW5nTGlzdHMgPSBnZXRBcnJheU9mR2VuZXJpY09iamVjdHMxKAogICAgICAgIAluZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdCgiMSIsICIyIikpLAogICAgICAgIAluZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdCgiMyIsICI0IiwgIjUiKSkKCQkpOwogICAgICAgIExpc3Q8U3RyaW5nPiBzdHJpbmdMaXN0ID0gYXJyYXlPZlN0cmluZ0xpc3RzWzBdOwogICAgICAgIC8vINCd0L4g0LLQvtGCINGC0YPRgiDRjdGC0L4gQ2xhc3NDYXN0RXhjZXB0aW9uCiAgICAgICAgU3RyaW5nIHMgPSBzdHJpbmdMaXN0LmdldCgwKTsKICAgIH0KfQ==