Can't get method using Generics to populate List

I have the following scenario:

    public class Human_Behaviour : MonoBehaviour {
    
    public static List<Human_Behaviour>[,] humanObject;
    
    /*...
    ...
    STUFF HAPPENS HERE THAT POPULATES humanObject
    ...
    ...*/
    
    static List<T> CheckCollisionsAtPoint<T>(){
        List<T> hitHuman = new List<T>();
    
        if (typeof(T) == typeof(Human_Behaviour)){
    										hitHuman.Add(humanObject[0,0][0]);
    									}
    									else{
    										hitHuman.Add(humanObject[0,0][0].gameObject);
    									}
        return hitHuman;
      }
    }

Of course, this gives me the following errors:
“Argument #1' cannot convert Human_Behaviour’ expression to type T'" and "Argument #1’ cannot convert UnityEngine.GameObject' expression to type T’”

I tried to add Constraints to the method declaration:

static List<T> CheckCollisionsAtPoint<T>() where T:GameObject, Human_Behaviour{
    }

But was not allowed, since I read C# does not allow multiple inheritance.

I tried to throw a couple of Casts where I believed was reasonable, but wouldn’t work either.

So, how would I get the hitHuman.Add lines to work?

WARNING: This code is an extremely simplified example, not code in use in a real application. I’m interested in whether this very particular case can be made to work.

Can you paste the actual line that gives you the error?, you mention the error the error but not the line where the compiler or the console detects it.

Another thing:

hitHuman.Add(humanObject[0,0][0]);

that is defined as strongly typed

List<Human_Behaviour> hitHuman

My guess is you cannot add a strongly typed variable to a List of generic T. Have you tried this?

hitHuman.Add((T)humanObject[0,0][0]);

Hope this helps a bit