Unchecked cast: 'zzz.szi.m.Something1' to 'T'

I get warnings when I run "mvn package"

```
private <T> T get() throws Exception {
    T m;

    if (/*some condition*/) {
        m = (T)new Something1()
    }
    elseif (/*some condition*/) {
        m = (T)new Something2()
    }
    else {
        m = (T)new Something3()
    }
    return m;
}

```

my class:

```
public class Something1 implements Something {
    // ...
}
public class Something2 implements SomethingElse {
    // ...
}
public class Something3 implements Something, SomethingElse, SomethingMore {
    // ...
}

```

// added casting to (T) but same result

I want no warnings