java中setResult()是啥作用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中setResult()是啥作用?相关的知识,希望对你有一定的参考价值。
现在有两个activityA和B,假如我们从A跳转到B,再B完成相应的工作以后finish掉B,然后传数据给A,A在接受到数据以后做相应的操作。我们可以使用三个函数:
A:
//启动B
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivityForResult(intent,
2);//2是我们自己定义常量,对应下面使用到的resultCode
B:
//do something
setResult(2, null);
finish();
以上主要代码完成后我们需要在A中override onActivityResult()函数:
A:
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
super.onActivityResult(requestCode, resultCode,
data);
if (2 == requestCode)
//do
something
参考技术A 应该是个方法名称,得根据具体程序来判断,就是setResult()后面的花括号中的内容;如果有API文档,也可以通过它查看 参考技术B 这个.....我觉得应该是你的po里面有一个叫做result的私有属性吧!这个setResult()方法就是这个私有属性的set(赋值)方法,应该是public的,一般是这样滴 参考技术C 你确定Java里边有setResult()方法?你说的是android吗? 参考技术D 表述不是很清晰。能具体到时那个class的setResult么?
Java中静态最终瞬态的作用是啥?
【中文标题】Java中静态最终瞬态的作用是啥?【英文标题】:What is the effect of static final transient in Java?Java中静态最终瞬态的作用是什么? 【发布时间】:2016-05-07 03:44:15 【问题描述】:在我正在处理的代码库中,几乎所有声明为 static final String
的变量也声明为 transient
。
所以我有这样的字段:
public static final transient String VERSION = "1.0";
每当我发现这些 transient
关键字时,我都想删除它们,因为我认为它没有任何用途。
在这种情况下使用transient
与不使用之间的行为有什么不同吗?
【问题讨论】:
我假设您特别指的是与final
的组合,所以***.com/questions/4565653/… 不会是合理的重复,对吧?
请看这里 :) transient variables – Ruthi Ruth
到底谁使用序列化?删除所有瞬变! :)
我的问题是为什么你有这些 VERSION 变量。我的猜测是,它们在创建类时被硬编码为“1.0”,然后在之后的几年里保持不变。如果您问我,请删除整个内容。
@Tobb:版本只是一个例子。它基本上用于所有字符串常量
【参考方案1】:
变量上的transient
关键字将确保在序列化时该变量不是序列化对象的一部分。如果您的类不是serializable
,也不是JPA 实体(它使用transient 关键字来避免在数据库中存储变量),删除它应该没问题。
【讨论】:
这些类中的大多数都实现了 Serializable 好的,正如其他答案所述,静态成员无论如何都不会序列化。 ***.com/questions/11000975/…【参考方案2】:static
字段隐含为transient
(序列化static
字段时,它的值无论如何都会丢失)。所以确实,不需要同时声明两者。
【讨论】:
如果你能添加一个来源会很棒,但无论如何它看起来都是正确的答案。 当您说值丢失时,该字段是否是没有值的序列化的一部分(例如 null),还是该字段永远不会作为属性?【参考方案3】:静态成员与不与对象关联的类关联,因此在反序列化时,您将看到您传递的值,而不是使用瞬态时显示的默认值。 为了更好地理解,尝试在序列化之后更改变量的值,然后在反序列化时,您会看到序列化成员的值是相同的,但静态成员的值已经改变。 根据 transient final ,final 变量确实通过它们的值直接参与序列化,因此没有使用将 final 变量声明为瞬态。
【讨论】:
我可能遗漏了一些东西,但我看不出这对接受的答案有什么影响。以上是关于java中setResult()是啥作用?的主要内容,如果未能解决你的问题,请参考以下文章
我有这个unicodestring“Param�tres”,è被转换成未知字符。为啥?