我想编写一个Web应用程序,触发用户的默认电子邮件客户端发送电子邮件.
因此,我创建了一个链接,它导致符合mailto URI方案的URL(http://en.wikipedia.org/wiki/Mailto):
Link emailLink = new Link("Send Email",
new ExternalResource("mailto:someone@example.com"));
Run Code Online (Sandbox Code Playgroud)
但是,我想提供一个允许触发相应功能的Button,而不是使用Link.但是,对于按钮,我无法设置要打开的ExternalResource.
有没有人知道为Buttons解决这个问题,或者如何创建一个看起来和行为完全像按钮的链接?我也尝试了一些CCS修改,但没有自己管理任务.我还为前Vaadin版本找到了一些解决方案(https://vaadin.com/forum/#!/thread/69989),但不幸的是,它们不适用于Vaadin 7.
web和stackoverflow包含几个示例,说明如何使用ACTION_GET_CONTENT意图从另一个Android应用程序获取文件(例如,将其用作电子邮件附件).但是我需要实现什么类来创建为ACTION_GET_CONTENT事件提供内容的应用程序,例如我可以选择此应用程序(例如,用于选择电子邮件附件).
ContentProvider是一个正确的解决方案吗?我还需要添加到AndroidManifest.xml中?
我研究了 Java 14 中有用的 NullPointerExceptions 并测试了不同的场景。令人惊讶的是,在某些情况下,拆箱似乎会导致有用的 NPE,而其他情况则不包含任何错误消息:
// NPE with message 'Cannot invoke "java.lang.Integer.intValue()" because "index" is null'
Integer index = null;
int i = index;
// NPE with message null
List.of('a', 'b', 'c').indexOf(index);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么第二个例子不会产生与第一个例子相同的消息。我阅读了JEP 358,了解到该消息是根据字节码指令计算的。这两种情况有什么不同吗?我希望两个 snearios 都调用 Integer.intValue() 来取消装箱该值。
(使用 Oracle JDK 17.0.4.1 测试)