我将图像保存为a byte[]
,我想将其显示为JasperReport中的图像.我试过从Java方法获取数据:
public InputStream getImage(){
return new ByteArrayInputStream(getImageByteArray());
}
Run Code Online (Sandbox Code Playgroud)
和
public Image getImage() throws IOException{
return ImageIO.read(new ByteArrayInputStream(getImageByteArray()));
}
Run Code Online (Sandbox Code Playgroud)
和
public String getImage(){
return new String((new org.apache.commons.codec.binary.Base64()).encode(getImageByteArray()));
}
Run Code Online (Sandbox Code Playgroud)
但他们似乎都没有工作.
jrxml看起来像这样:
<image hAlign="Center" vAlign="Middle" isUsingCache="true" isLazy="true">
<reportElement positionType="Float" x="0" y="0" width="164" height="32" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="c63c84a8-41c7-4ca3-8451-751d43fa8a9e"/>
<imageExpression><![CDATA[$P{paramObject}.getImage()]]></imageExpression>
</image>
Run Code Online (Sandbox Code Playgroud)
我尝试的一些东西得到了异常,有些打印了JasperReport但是图像应该是空白的区域.我知道图像数据存在,因为我可以在JSF页面中显示它.图像数据是SVG数据.
我开始学习Python,作为主要的Java开发人员,我遇到的最大问题是何时何时不使用类型检查.大多数人似乎都在说Python代码不需要进行类型检查,但是在我认为有必要时会有很多情况.例如,假设我需要使用方法参数来执行算术运算,为什么我不确定参数是数值数据类型?
此问题不仅限于功能.对于类变量,我也会遇到同样的思考过程.我应该或不应该使用属性(使用@property
)来检查类型而不是定期实现的类变量?
这是一种为我开展发展的新方式,所以我很感激帮助理解.
我有一个Map<Sting, List<Object>>
可以从多个 Java 类实例访问的。这Map
有时会由单独的线程偶尔更新。实例永远不会写入任何对象。他们只是获取List
s 之一并读取其中的对象。
我应该为此担心线程安全吗?只有一个线程在写。