Michał Tabor
Michał Tabor

Reputation: 2467

For loop with generic parameters in Java

Short question - how should it look like to work?

private <T> boolean hasElement(T array, T element) {
    for (T el : array) {
        if (el.equals(element)) {
            return true;
        }
    }
    return false;
}

Now it shows error in line where for loop starts.

Upvotes: 1

Views: 244

Answers (2)

Evgeniy Dorofeev
Evgeniy Dorofeev

Reputation: 136002

try this

private <T> boolean hasElement(T[] array, T element) {
    for (T el : array) {
        if (el.equals(element)) {
            return true;
        }
    }
    return false;
}

not that though generic version is better still this version will compile and work too

private boolean hasElement(Object[] array, Object element) {
    for (Object el : array) {
        if (el.equals(element)) {
            return true;
        }
    }
    return false;
}

Upvotes: 1

NPE
NPE

Reputation: 500317

private <T> boolean hasElement(T[] array, T element) {
                                ^^

Upvotes: 12

Related Questions