"public abstract void bindView(VH holder, int position, TreeNode node);" Despite TreeNode being generic, this method gets a generic TreeNode instead of a TreeNode<> for a specific kind of ViewHolder.