For Episode 60 of the Java Series: https://youtu.be/UFv4PcwzcsI
class nonGenericClass{
//Generic method. They can be used outside of generic classes and inside
static <ArrayParam extends Number> double findHighestNumber(ArrayParam[] ourArray){
double highestNumber = 0.0;
for (int i = 0; i < ourArray.length;i++){
if(ourArray[i].doubleValue() > highestNumber){
highestNumber = ourArray[i].doubleValue();
}
}
return highestNumber;
}
}
public class Main {
public static void main(String[] args) {
//Our arrays of numbers
Integer[] numbers = {1, 60, 20, 1};
Double[] numbers2 = {3.0, 45.0, 121.1, 11.0};
// String[] numbers3 = {"qwewqe", "safda", "asdad"};
System.out.println(nonGenericClass.findHighestNumber(numbers));
System.out.println(nonGenericClass.findHighestNumber(numbers2));
//Cant do because of extension to numbers
// System.out.println(nonGenericClass.findHighestNumber(numbers3));
}
}
class nonGenericClass{
double value;
//Generic Constructor. Takes any object of the class Number or it's subclasses
<A extends Number> nonGenericClass(A number){
value = number.doubleValue();
}
public double getValue() {
return value;
}
}
public class Main {
public static void main(String[] args) {
int number = 10;
nonGenericClass wow = new nonGenericClass(number); //Autoboxes int primitive into Integer Object since objects are needed with Generics, plus it has to be a subclass of Number anyway, and Integer is.
System.out.println(wow.getValue());
Double number2 = 12.0;
nonGenericClass wow2 = new nonGenericClass(number2);
System.out.println(wow2.getValue());
}
}