我已经开始了一个相当大的所谓的Descriptors枚举,我想在我的模型中用作参考列表.但是现在我第一次遇到编译器/ VM限制因此我正在寻找最好的解决方案来处理这个问题.
这是我的错误:静态初始化程序的代码超过65535字节限制
很明显这是从哪里来的 - 我的Enum只有很多元素.但是我需要那些元素 - 没有办法减少那个元素.
最初,我计划使用单个枚举,因为我想确保Enum中的所有元素都是唯一的.它用于Hibernate持久化上下文,其中对Enum的引用在数据库中存储为String值.所以这必须是独一无二的!
我的Enum的内容可以分成几组属于一起的元素.但拆分Enum会消除我在编译期间获得的独特安全性.或者可以通过某种方式实现多个枚举?
我目前唯一的想法是定义一些名为Descriptor的接口,并编写几个实现它的Enum.这样我希望能够使用Hibernate Enum映射,就好像它是一个Enum一样.但我甚至不确定这是否有效.我放松了独特的安全.
任何想法如何处理这种情况?
我正在尝试绘制一个完整的RGB颜色贴图,最终将允许用户通过在任何位置点击该可视贴图来选择颜色.我目前的代码如下:
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
for (float x=0; x<320; x++) {
for (float y=0; y<416; y++) {
float r = x / 320;
float g = y / 416;
float b = (y < 208) ? y / 208 : (416 - y) / 208;
CGContextSetRGBFillColor(c, r, g, b, 1.0);
CGContextFillRect(c, CGRectMake(x, y, 1, 1));
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果还不错,但我还不满意.光谱错过了包括白色在内的鲜艳色彩.原因很清楚:红色,绿色和蓝色不会同时达到1.0.

您是否有任何建议如何改进该地图,以便它代表RGB色彩空间的全部光谱?
感谢您的输入!
更新:
正如Josh Caswell所建议的,我使用了HSB颜色空间和以下代码:
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
int size = 20; …Run Code Online (Sandbox Code Playgroud) 我正在使用Comparator实现来对大量对象进行排序.根据此集合中对象的类型,排序需要几毫秒到半分钟.有没有办法确定Comparatorwhile排序的进度?我想为用户想象一下这个.
Collections.sort(sorted, new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
/* do it... */
return order;
}
}
Run Code Online (Sandbox Code Playgroud)
该集合可以包含简单的短String对象,Date对象或(最坏情况下)CLOB对象,这些对象需要在排序时获取数据.
我有一个JPA @Entity类,现在使用@PrePersist很长一段时间了.今天我想添加一些功能,我需要该实体的ID.此ID在数据库中由HIBERNATE_SEQUENCE持久化期间生成.它通常在 em.persist(实体)之后设置.
由于某种未知的原因,@PrePersist方法被触发...而@PostPersist根本不会触发:
@Entity
public class MyEntity {
@PrePersist
protected void onCreate() {
System.out.println("ExtendedEntity.onCreate()");
}
@PostPersist
protected void afterCreate() {
System.out.println("ExtendedEntity.afterCreate()");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用带有Java v7 +,Hibernate v3.3.1.GA和Seam v2.2.2.Final的JBoss v4.2环境......
@PostPersist是否有隐藏的要求?
应用程序图标的每次更改都需要为 Xcode 生成合适的图标大小。我一直在寻找一种有效的方法来生成这些图标。
很明显,自动化过程不会关心像素拟合或类似细节。但是对于我们大多数人来说,一个简单的 AppleScript 应该可以解决问题。
以下屏幕显示了所需的所有尺寸:

我收集了不同的资源并制作了一个简单的工作脚本供大家分享......所以你去 - 只需在下面查看我的答案。
我们目前在一个EAR中部署了两个单独的Web应用程序(WAR),其中包含其他JAR和设置.为了提高我们的部署我想这些Web应用程序的一个分裂成不同的模块可以构建和包装个别.但我目前还不知道如何打包这些模块,以便我能够根据需要添加或删除它们 - 最好在运行时.
webapp变得越来越复杂,我想将一些功能分成模块.这些模块应打包为单个存档.只要它们只包含通过代码加载的类和资源,我就知道如何做到这一点(简单的JAR).但是JSP怎么样?通常,WAR文件包含JSP或HTML文件.我的情况是使用JBoss Seam和RichFaces的JSF页面.
这些模块将向运行的Web应用程序添加类,资源和JSF页面以及其他包含.是否有可能将它们作为单独的存档部署以提供相同的运行webapp?
我们正在使用Maven进行构建和打包,并部署到JBoss v4中.
我们使用iText从Java代码生成PDF文件,在大多数情况下都可以很好地工作.几天前,我们开始生成PDF/A而不是普通的PDF文件,需要嵌入所有字体.iText Document主要是自定义PdfPTable和其他类的构建,我们直接控制字体.所有使用的字体都是通过以下代码加载的TTF文件创建的 - 这很好用:
private BaseFont load(String path) {
try {
URL fontResource = PrintSettings.class.getResource(path);
if (fontResource == null) {
return null;
}
String fontPath = fontResource.toExternalForm();
BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
baseFont.setSubset(true);
return baseFont;
}
catch (DocumentException ex) {
Logger.getLogger(PrintSettings.class).warn("...");
}
catch (IOException ex) {
Logger.getLogger(PrintSettings.class).warn("...");
}
return FontFactory.getFont(PrintSettings.FONT, "UTF-8", true, 8f, Font.NORMAL, PrintSettings.COLOR_TEXT).getBaseFont();
}
Run Code Online (Sandbox Code Playgroud)
现在我们在PDF中使用一种从HTML代码生成的特定内容类型.我们用它XMLWorker来处理那部分.只要我们没有嵌入字体,这工作得很好.但是使用PDF/A我们需要嵌入所有字体,现在我们正在努力解决未知的Helvetica使用来源.
我们试图通过使用我们自己的FontProvider类来解决这个问题:
public class PrintFontProvider extends FontFactoryImp {
@Override
public Font getFont(String …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个使用反射来访问对象属性的动态包装器。我的方法适用于不同类型的对象——但我仍然对 Enums 有问题。
让我们假设我已经有了合适的 setter 和 getter,我想在不同的情况下调用它们。例如,我试图通过以下代码保存给定值:
public void save() {
try {
// Enums come in as Strings... we need to convert them!
if (this.value instanceof String && this.getter.getReturnType().isEnum()) {
// FIXME: HOW?
}
this.setter.invoke(this.entity, this.value);
}
catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
throw new RuntimeException("Die Eigenschaft " + this.property + " von Entity " + this.entity.getClass().getSimpleName() + " konnte nicht geschrieben werden!", ex);
}
}
Run Code Online (Sandbox Code Playgroud)
如何将 String 对象转换为正确的 Enum 值?
我知道MyEnum.valueOf(String)......但是如果我不能在我的源代码中命名 Enum 怎么办?我还没有设法使用类似的东西
this.value …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码在浏览我们的 Web 应用程序时显示“加载”覆盖。这在 Chrome、Firefox 和 IE / Edge 中工作得很好……但在 Safari 中则不然。事件被触发,控制台日志显示事件——但通过 jQuery show() 的视觉变化没有效果。
$(document).ready(function() {
$(window).on("beforeunload", function() {
console.log("in beforeunload...");
$("#overlay").show();
});
});
Run Code Online (Sandbox Code Playgroud)
这是 Safari (macOS) 中的已知限制还是我遗漏了什么?有什么解决方法吗?
我已经开始编写一些新的JBoss定时服务,旨在使用一些现有的接缝组件.但由于不存在的上下文,我似乎无法访问这些组件.除了JSF的典型情况之外,是否可以使用它们?
一个小小的片段来展示我想要做的事情......
@Service
public class MyService extends DefaultTimedService implements TimedObject, DefaultServiceInterface {
@Timeout
public void ejbTimeout(Timer timer) {
MyInterface loader = (MyInterface) Component.getInstance(MyInterface.SEAM_NAME, true);
// throws no context!
}
}
Run Code Online (Sandbox Code Playgroud)
例如,抛出以下异常:
java.lang.IllegalStateException: No application context active
at org.jboss.seam.Component.forName(Component.java:1945)
at org.jboss.seam.Component.getInstance(Component.java:2005)
Run Code Online (Sandbox Code Playgroud) 我正在使用Envers审核我的实体的不同字段.该框架通常起作用,但似乎在某些类型的实体映射中存在问题.所有以前的问题我都可以自己解决......但这次我被困住了.
将某个实体插入数据库时,我得到以下异常:
Caused by: java.lang.NullPointerException
at org.hibernate.envers.event.AuditEventListener.generateBidirectionalCollectionChangeWorkUnits(AuditEventListener.java:108)
Run Code Online (Sandbox Code Playgroud)
我不完全确定哪个实体导致这种情况,因为它在flush()期间被触发,并且复杂的应用程序在一个较大的事务中插入许多不同的实体.
我们正在使用一些在该异常之前触发的HibernateEventListener ...所以我认为该实体是原因.persistence.xml以这种方式配置:
<property name="hibernate.ejb.event.post-insert" value="com.xyz.hibernate.events.listeners.MyListener,org.hibernate.envers.event.AuditEventListener" />
Run Code Online (Sandbox Code Playgroud)
如果这是真的,则实体如下(摘录):
@Entity
@Table(name = Property.TABLE_NAME, uniqueConstraints = @UniqueConstraint(columnNames = { "ENTITY_ID", "DESCRIPTOR_ID", "PROMOLEVEL_ID" }))
public class Property extends AbstractEntity {
private static final long serialVersionUID = 1L;
public static final String TABLE_NAME = "E_BUSINESS_PROPERTIES";
public static final String PROPERTY_ENTITY = "entity";
public static final String PROPERTY_DESCRIPTOR = "descriptor";
public static final String PROPERTY_PROMOLEVEL = "promolevel";
@Audited
@ManyToOne(optional = false)
private ProjectPropertyDescriptor descriptor;
@Audited
@ManyToOne
private ExtendedEntity …Run Code Online (Sandbox Code Playgroud)