package Ġcom . fm . war frame alert ing . base Ċ Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġjava . lang . reflect . Parameterized Type Ċ Ċ /** Ċ Ġ* Ġauthor ï¼ļ BF M Ċ Ġ* Ġdate ï¼ļ Ġ 2 0 2 1 / 1 / 7 Ċ Ġ* Ġdesc ï¼ļ Ċ Ġ*/ Ċ abstract Ġclass ĠBase VM Fragment < VM Ġ: ĠBase ViewModel , ĠDB Ġ: ĠView Data Binding >( ĊĠĠĠ Ġ@ Layout Res Ġprivate Ġval Ġlayout Res : ĠInt Ċ ) Ġ: ĠBase Fragment < DB >( layout Res ) Ġ{ ĊĊĠĠĠ Ġval ĠviewModel : ĠVM Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( this , Ġdefault ViewModel Provider Factory ). get ( get VM Cls ( this )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ å½ĵåīį ç±» ç»ĳ å®ļçļĦ ViewModel Ċ Ġ* ĠCreate Ġby ĠRob bin Ġat Ġ 2 0 2 0 / 7 / 1 Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< VM > Ġget VM Cls ( cls : ĠAny ): ĠVM Ġ{ ĊĠĠĠ Ġreturn Ġ( cls . java Class . generic Super class Ġas ĠParameter ized Type ). actual Type Arguments [ 0 ] Ġas ĠVM Ċ }