隐藏链接的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隐藏链接的方法相关的知识,希望对你有一定的参考价值。
参考技术A隐藏链接主要有HTML中设置DIV的display属性为NONE。如果直接设置DIV的display属性为NONE,这样的隐藏链接会被搜索引擎认为是在作弊,不仅没有帮助,反而可能给网站带来负作用。而搜索引擎对javascript的识别不是很好,所以隐藏链接经常是通过javascript来输出隐藏的DIV。这样的话,人工正常浏览页面无法看到这些链接,而搜索引擎却认为这些链接是有效的。代码为:首先通过javascript写前面的DIV,设置display为none,具体代码为:<script language=javascript type=text/javascript> document.write(<div style=display:none;>); </script>。然后输出一个TABLE或DIV,TABLE或DIV中添加自己的链接。最后再通过javascript输出后半部分/DIV,具体代码为:<script language=javascript type=text/javascript> document.write(</div>); </script>。这样就完成了隐藏链接的添加。
FireStore 数据未显示访问隐藏方法 Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V(灰名单,链接,允许)
【中文标题】FireStore 数据未显示访问隐藏方法 Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V(灰名单,链接,允许)【英文标题】:FireStore Data Not Showing Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed) 【发布时间】:2021-08-11 21:22:03 【问题描述】:当我尝试使用 FirestoreRecyclerAdapter
从 Firestore 检索数据时,它没有显示。
错误日志
Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
Java 代码
//FirebaseFireStore Variable
firebaseFirestore = FirebaseFirestore.getInstance();
//RecyclerView Variable
recyclerView = findViewById(R.id.recyclerViewId);
//Query
Query query = firebaseFirestore.collection("root");
//RecyclerOption
FirestoreRecyclerOptions<TestModel> options = new FirestoreRecyclerOptions.Builder<TestModel>()
.setQuery(query, TestModel.class)
.build();
//FirestoreRecyclerAdapter
adapter = new FirestoreRecyclerAdapter<TestModel, MyTestViewHolder>(options)
@NonNull
@Override
public MyTestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_item, parent, false);
return new MyTestViewHolder(view);
@Override
protected void onBindViewHolder(@NonNull TestActivity.MyTestViewHolder holder, int position, @NonNull TestModel model)
holder.tit.setText(model.getmTitle());
holder.sto.setText(model.getmStory());
;
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
private class MyTestViewHolder extends RecyclerView.ViewHolder
TextView tit, sto;
public MyTestViewHolder(@NonNull View itemView)
super(itemView);
tit = itemView.findViewById(R.id.testTitleId);
sto = itemView.findViewById(R.id.testStoryId);
@Override
protected void onStart()
super.onStart();
adapter.startListening();
@Override
protected void onStop()
super.onStop();
adapter.stopListening();
模型类
String mTitle, mStory;
public TestModel(String mTitle, String mStory)
this.mTitle = mTitle;
this.mStory = mStory;
private TestModel()
public String getmTitle()
return mTitle;
public void setmTitle(String mTitle)
this.mTitle = mTitle;
public String getmStory()
return mStory;
public void setmStory(String mStory)
this.mStory = mStory;
FireStore 控制台
【问题讨论】:
【参考方案1】:当您尝试将 Firestore 中的文档映射到“TestModel”类型的对象时,类中存在的字段名称必须与数据库中存在的属性名称相匹配。不幸的是,在您的情况下,这些字段不匹配。看,你的数据库中的字段被称为“故事”和“标题”,而在类中被称为“mStory”和“mTitle”,这是不正确的。
要解决这个问题,您有两个选择,您可以更改数据库中属性的名称以匹配类中的名称,或者您可以在 getter 前面使用注释。例如,对于“mTitle”字段,您的 getter 应如下所示:
@PropertyName("title")
public String getTitle()
return mTitle;
这样,您告诉编译器查找名为“title”而不是“mTitle”的属性。
【讨论】:
谢谢亚历克斯。是的,当我将模型类变量名称更改为Firestore
键名时,它就可以工作了。以上是关于隐藏链接的方法的主要内容,如果未能解决你的问题,请参考以下文章
FireStore 数据未显示访问隐藏方法 Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V(灰名单,链接,允许)