public boolean isOnline() {
ConnectivityManager conMgr = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if(netInfo == null || !netInfo.isConnected() || !netInfo.isAvailable()){
Toast.makeText(context, "No Internet connection!", Toast.LENGTH_LONG).show();
// Your code to show dialog..
return false;
}
return true;
}
如上面的代码所示。我的问题是:
为什么通用引用不保持其参数的一致性?
答案 0 :(得分:6)
是的。在您的示例中,您尝试将const应用于引用类型本身,而不是int。如果在类型之后写const,则可以看到它更干净。
const T& == T const& == int& const&.
由于const在应用于引用类型时不会改变任何内容,因此将其忽略。
实际上,如果您写的int& const
没有模板,则会出现编译错误。但是,在模板中是允许的,因为在某些情况下很难避免此类类型。
查看此问题的另一种方法是用指针替换引用。如果这样做,将得到以下类型:
const T* = T const* = int* const*
此类型是指向不可变(常量)的指针,该指针指向可变(非常量)int的指针。