我希望从头开始学习编程嵌入式系统.看了一会儿后,我发现自己有点困惑.
我可以编程C和C++,但我只是不知道从哪里开始嵌入式编程,我应该购买某种设备来练习,使用微处理器模拟器(如果是这样,哪一个?) - 这样的东西,任何关于从何处着手的建议或资源非常受欢迎.
假设我有一个我使用的泛型类,声明如下:
public class ConfigurableRuleKey<R extends Configurable & Rule> extends Key<R> {
private final R rule
public ConfigurableRuleKey(R rule) {
this.rule = rule;
}
/* Additional methods are declared here */
}
Run Code Online (Sandbox Code Playgroud)
我想实现一个工厂方法,检查传递规则是否实现接口Configurable
,创建可配置规则或只创建一个基本密钥:
public static <R extends Rule> Key<R> create(R rule) {
if (rule instanceof Configurable) {
return new ConfigurableRuleKey<>(rule); //This will not compile
} else {
return new RuleKey<>(rule);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是在我的工厂方法中我不能将规则传递给构造函数,ConfigurableRuleKey
因为它不符合声明的泛型约束(如果我明确检查它实现的话,则为事件Configurable
).问题是如何构建我的规则实例以使其符合构造函数限制ConfigurableRuleKey
?
尝试在编写时实现textarea
具有表情符号支持的组件.
我希望能够备份原始文本(仅限ascii chars),同时在a上显示过滤/生成的html结果(带有角度表情符号过滤器)div
.
我最初的解决方案是
<textarea ng-model="text" ng-change="..." ng-focus="..."></textarea>
<div ng-bind-html="text | myEmoticonsFilter"></div>
Run Code Online (Sandbox Code Playgroud)
但是我无法使用隐藏的textarea.此外,有了这个,我将无法鼠标选择文本并删除或复制/粘贴安全.
我也想过用的<div contenteditable="true">
,但ng-focus
并ng-change
不会被处理.
有没有人对如何继续这个有任何兴趣?
编辑1:这是一个jsfiddle尝试我正在做的事情.到目前为止,能够替换第一次出现,但行为仍然不稳定.我正在使用contenteditable
指令进行双向数据绑定并过滤表情符号模式.
编辑2:关于我的声明称,ng-focus
与ng-change
不进行处理,这是不正确- ng-focus
原生支持上<div contenteditable="true">
,并ng-change
只要一个指令通过声明将工作ngModel
和制定适当的$modelValue
和$viewValue
(一个例子是在所提供的jsfiddle在编辑1).
我已经在一些算法上运行了一些基准测试并分析了它们的内存使用和效率(L1/L2/TLB访问和未命中),并且一些结果对我来说非常有趣.
考虑到包容性缓存层次结构(L1和L2缓存),L1缓存未命中数是否应该 与L2缓存访问次数一致?我发现的一个解释是TLB相关:当TLB中没有映射虚拟地址时,系统会自动跳过某些缓存级别的搜索.这看起来合法吗?
有什么办法(或以正确的方式)来有条件地显示了基于后台Bean的条件对primefaces对话?代码如下所示:
<!-- dialog declaration -->
<p:dialog id="dialogTest" widgetVar="dialogTest" header="#{text['modal.header']}" modal="true" >
<h:outputText value="Test output" />
</p:dialog>
<!-- caller -->
<p:menuitem value="Check" actionListener="#{backingBean.performCheck}" oncomplete="PF('dialogTest').show()" icon="ui-icon-arrowthick-1-e"/>
Run Code Online (Sandbox Code Playgroud)
我的支持bean如下所示:
private boolean conditionFlag; // ... +getter
public void performCheck() {
// ... access managers (database)
this.conditionFlag = dao.check();// some check;
}
Run Code Online (Sandbox Code Playgroud)
我只是想显示在对话框中的情况下conditionFlag
是true
.如何p:menuitem
在performCheck
跑步后做这样的事情?
oncomplete="if (#{backingBean.conditionFlag}) { PF('dialogTest').show() }"
Run Code Online (Sandbox Code Playgroud)
我用PE:的DocumentViewer显示文件和设置"区域设置"喜欢pt
(pt_pt
, pt_br
,pt-pt
或pt-br
),但没有任何反应和采取的行动将继续以英语.为什么?
我的代码是:
<pe:documentViewer locale="pt" height="#{previewHeight}" value="#{previewComponent.file}"/>
Run Code Online (Sandbox Code Playgroud) 我正在使用 primefaces (5) 自动完成组件,其中选项总数约为 500。虽然这是一个很大的数字,但发送的数据非常简单,从服务器到客户端的传输速度很快。
我想知道是否可以在页面加载时预加载/缓存所有自动完成选项,以避免在用户编写文本时出现任何 ajax 延迟。
有谁知道如何做到这一点?
我正在尝试实现一个 IndexedDB 接口,该接口允许用户将数据从以前的数据库(DB)版本(在处理程序oldVersion
中检测到)迁移到最新版本(即将打开),这意味着我需要:onupgradeneeded
event.target.oldVersion
currentVersion
currentVersion
打开操作oldVersion
在 中检测到onupgradeneeded
)currentVersion
)我在打开时遇到问题oldVersion
,因为我无法中止(异常 11)currentVersion
升级事件(它也是不可取消的)。
异常 11:在不允许的对象上或在不允许的时间调用操作。
是否可以以某种方式取消或中止 的升级事件currentVersion
,以便我打开oldVersion
...?
注意:...如果没有,是否有其他方法可以从我缺少的旧版本数据库迁移数据?
我正在尝试调用一个确认对话框p:menuitem
:
<p:menuitem value="#{text['button.archive']}" actionListener="#{tasksbacking.archive}" icon="ui-icon-locked">
<p:confirm header="#{text['button.archive.confirm.header']}"
message="#{text['button.archive.confirm.message']}"
icon="ui-icon-alert"/>
</p:menuitem>
Run Code Online (Sandbox Code Playgroud)
但根据 Primefaces 5 中的文档:
目前 p:confirm 支持 p:commandButton 和 p:commandLink
有没有办法做到这一点?