前言

写在前面:首先是不一次性放出来的原因:资料来之不易,希望大家好好珍惜,每天花一段时间细细的消化这些题目,其次希望大家在阅读题目的时候最好跟着书或者代码一起阅读、一起敲,做到熟稔于心,信手拈来,这样面试的时候才能展现你最自信的一面。

141、NativeScript:增强tns平台声明

答案:

最终,我根本不赞成tns-platform-declarations,因为性能非常糟糕(特别是如果您的开发机中的RAM小于等于8GB)。

我的解决方案是定义一个自己的my-typings.d.ts文件(例如,在项目根目录中),在其中定义扩展类型RecyclerView。随着tsconfig.json违约应该自动被追上了tsc。否则可以添加exclude/include或files表达式。

然后,您可以放置一个/// <reference path="path/to/RecyclerView/file.d.ts" />内部,以便ambient global namespaceTypescript编译器可以找到以下内容。

declare namespace android {namespace view {namespace ViewGroup {namespace LayoutParams {const MATCH_PARENT;const WRAP_CONTENT;}}class ViewGroup {}}namespace support.v7.widget {namespace RecyclerView {type AdapterImpl = {onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): ViewHolder;onBindViewHolder(holder: android.support.v7.widget.RecyclerView.ViewHolder, position: number): void;getItemCount(): number};class Adapter {static extend(AdapterImpl): { new () }}class LayoutParams {constructor(width: any, height: any);}class ViewHolder {static extend: any;}}class RecyclerView {constructor(context: any);setAdapter(Adapter): void;setLayoutManager(LinearLayoutManager): void;}class LinearLayoutManager {constructor(context: any);}}
}

基本上,名称空间可用于模拟嵌套的对象属性(例如android.view.xxx)。如果内部类是用Java定义的(Typescript似乎禁止嵌套class语句),这也是这种方式。

在实际使用类型的情况下,我还必须定义一个与名称空间同名的类android.view.ViewGroup。否则你会得到错误

没有出口会员xxx

,即使使用显式声明了类类型export(也没有必要,因为已经全局声明了名称空间)。

对于使用扩展本机Java类型的特殊情况extend,我为相关类定义了一个静态方法,例如static extend(AdapterImpl): { new () },其返回类型可以使用实例化new。

希望对其他类似问题有所帮助。

142、重写旧代码

答案:

诚然,问题涉及到cobol,它会根据您的需求做出任何特定的回答,如果您说“我们有一个旧的VB应用程序”或旧的C应用程序,则选择#3始终是正确的方法。

我曾在3家决定选择方案2的公司工作。第2位破产者试图为新系统付费,而仅从旧版本中获得收益,第3位确实非常接近。

行动3的另一个因素是,您必须保留多年来使用的所有旧错误修正程序。每次重写总是会引入越来越多的错误,部分是因为您希望快速完成重写,部分是因为您将用一种陌生的新语言编写它,部分是因为所有新代码都包含错误。

重构并替换旧应用程序的逻辑块,最终您将拥有一个漂亮的闪亮新应用程序。从GUI开始,以获得最安全的新方法。此外,当您用新内容重新编写应用程序时,更新的内容将是最酷的,新应用程序将过时,您将再次发布相同的问题!

143、如何在Android中以编程方式解压缩文件?

答案:

peno的版本进行了优化。性能的提高是可以察觉的。

private boolean unpackZip(String path, String zipname)
{       InputStream is;ZipInputStream zis;try {String filename;is = new FileInputStream(path + zipname);zis = new ZipInputStream(new BufferedInputStream(is));          ZipEntry ze;byte[] buffer = new byte[1024];int count;while ((ze = zis.getNextEntry()) != null) {filename = ze.getName();// Need to create directories if not exists, or// it will generate an Exception...if (ze.isDirectory()) {File fmd = new File(path + filename);fmd.mkdirs();continue;}FileOutputStream fout = new FileOutputStream(path + filename);while ((count = zis.read(buffer)) != -1) {fout.write(buffer, 0, count);             }fout.close();               zis.closeEntry();}zis.close();} catch(IOException e){e.printStackTrace();return false;}return true;
}

144、NoClassDefFoundError-Eclipse和Android

答案:

更新ADT后出现此问题。

我将所有JAR文件存储在一个名为“ lib”的文件夹中,然后以普通的Eclipse方式将jars添加到构建路径中。直到我更新为止,这个工作正常。

更新之后,我得到了一个我可以清楚地看到它包含在jar中的类的NoClassDefFoundError(签出ReferencedLibraries类)。

解决方案是从构建路径中删除我的jar,然后将“ lib”文件夹重命名为“ libs”。这是一个蚂蚁惯例,似乎是新ADT在.apk文件中查找并包括库的方式。一旦执行此操作,一切正常。

145、如何在Android中将TextView添加到LinearLayout

答案:

尝试使用

LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info);
...
linearLayout.addView(valueTV);

还请确保你正在创建的布局参数是LinearLayout.LayoutParams …

146、JSF 2.0文件上传

答案:

首先,这个(旧的)问答假设为JSF 2.0 / 2.1。从JSF 2.2开始,有了一个本机<h:inputFile>组件,而无需第三方组件库。另请参阅如何使用JSF 2.2 <h:inputFile>上传文件?保存的文件在哪里?

最简单的方法是将Tomahawk用于JSF 2.0。它提供了一个<t:inputFileUpload>组件。

这是一个分步教程:

为Servlet 3.0和JSF 2.0创建一个空白的动态Web项目。在web.xml必须遵守的Servlet 3.0规范,已经包含了JSF的servlet:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="YourProjectName" version="3.0"><display-name>Your Project Name</display-name><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.xhtml</url-pattern></servlet-mapping></web-app>

faces-config.xml必须符合JSF 2.0规范:

<?xml version="1.0" encoding="UTF-8"?>
<faces-configxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"version="2.0"></faces-config>

下载适用于JSF 2.0的Tomahawk 1.1.10。解压缩zip文件,转到/lib文件夹,然后将所有*.jar文件复制到中/WEB-INF/lib

它是18页的文件,其中batik*.jar和xml*.jar是不必要的单独使用t:inputFileUpload的组件。您可以将它们丢掉。

在中配置Tomahawk扩展过滤器web.xml。它是负责处理multipart/form-data请求的人员,该请求是能够通过HTTP发送文件所必需的。

<filter><filter-name>MyFacesExtensionsFilter</filter-name><filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping><filter-name>MyFacesExtensionsFilter</filter-name><servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

请注意,<servlet-name>必须完全匹配<servlet-name>FacesServlet与您在definied web.xml

创建一个简单的Facelet upload.xhtml

<!DOCTYPE html>
<html lang="en"xmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"xmlns:t="http://myfaces.apache.org/tomahawk"xmlns:ui="http://java.sun.com/jsf/facelets"><h:head><title>Tomahawk file upload demo</title></h:head><h:body><h:form enctype="multipart/form-data"><t:inputFileUpload value="#{bean.uploadedFile}" /><h:commandButton value="submit" action="#{bean.submit}" /><h:messages /></h:form></h:body>
</html>

注意上的enctype="multipart/form-data"属性<h:form>,这对于能够使用HTTP发送文件非常重要。

创建一个简单的托管bean com.example.Bean

package com.example;import java.io.IOException;import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;import org.apache.commons.io.FilenameUtils;
import org.apache.myfaces.custom.fileupload.UploadedFile;@ManagedBean
@RequestScoped
public class Bean {private UploadedFile uploadedFile;public void submit() throws IOException {String fileName = FilenameUtils.getName(uploadedFile.getName());String contentType = uploadedFile.getContentType();byte[] bytes = uploadedFile.getBytes();// Now you can save bytes in DB (and also content type?)FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(String.format("File '%s' of type '%s' successfully uploaded!", fileName, contentType)));}public UploadedFile getUploadedFile() {return uploadedFile;}public void setUploadedFile(UploadedFile uploadedFile) {this.uploadedFile = uploadedFile;}}

应该的。通过http:// localhost:8080 / projectname / upload.xhtml打开它。

关于您的具体问题:

我应该怎么做才能将文件从JSF传递到托管bean,然后将其转换为byte [](以便能够将其处理到EJB)?

上面已经回答了。

servlet如何帮助我?

它能够处理和控制HTTP请求/响应。在JSF环境中,FacesServlet已经完成了所有工作。

我需要一个servlet来做到这一点吗?

在JSF环境中,FacesServlet必选。但是API已经提供了它,您不需要自己编写。但是,为了能够从数据库下载文件,另一个servlet绝对有用。您可以在此处找到一个基本示例:用于提供静态内容的Servlet。

我也发现在某个博客中提到了servlets 3.0,但是我不知道我的工作环境是否正在使用它,如果我正在使用servlets 3.0(我正在使用JEE6)怎么办?

如果您使用的是Servlet 3.0容器,例如Glassfish 3,JBoss AS 6,Tomcat 7等,并且web.xml声明为Servlet 3.0,那么您肯定是在使用Servlet 3.0。Servlet 3.0是Java EE 6的一部分。

147、Eclipse控制台:检测警告和错误模式并使它们可单击

答案:

编辑: 我发现了一个插件,可以使外观更加美观:Sunshade Errorlink(向下滚动一点)。我不确定这到底有多灵活,但它提到了蚂蚁的支持。

我知道您可能想要一个实际的实现,但这是您想要的插件设计的一个粗略起点。如果有人想实现它,请在此处添加指向它的链接。如果我有空闲时间,我可能会自己做(哈!)

2022年最新版Android安卓面试题+答案精选(每日20题,持续更新中)【八】相关推荐

  1. 2022年最新版Android安卓面试题+答案精选(每日20题,持续更新中)【十】

    前言 好久不见,甚是想念.各位朋友们,我又携带着最受大家欢迎的面试题回来了,可能会有朋友要问了:哎呀,你咋不更了,这不是上次那一份资料用完了嘛,这不,我又厚着脸皮去问我们公司的主管:Boss,给我份面 ...

  2. 2022年最新版Android安卓面试题+答案精选(每日20题,持续更新中)【一】

    前言 写在前面:首先是不一次性放出来的原因:资料来之不易,希望大家好好珍惜,每天花一段时间细细的消化这些题目,其次希望大家在阅读题目的时候最好跟着书或者代码一起阅读.一起敲,做到熟稔于心,信手拈来,这 ...

  3. 史上最全的2022年最新版Android安卓面试题集锦(含答案+源码)

    金三银四,又到了一年一度的黄金跳槽季,想必也许有不少Android程序员开始摩拳擦掌,蠢蠢欲动了.而网络上的面试题大部分已经过时甚至是错误成堆,漏洞百出,今天结合自己这段时间的面试经验和几个Andro ...

  4. 数据挖掘分析相关面试题(亲身经历),持续更新中(最新一次为20210209)

    以下大多数都是博主或者博主同事经历过的面试题哟~关于工作内容的就不写啦,一些基础面试题跟大家分享下 多看看面试题也能够让你快速了解自己的能力和短缺的地方哦~ 本篇博客会持续更新,也希望大家多多提供一些 ...

  5. 安卓开发者中心!那些BAT大厂的Android面试官到底在想些什么?持续更新中

    最近很多人说,Android越来越不好找工作了,学习NDK开发会不会好点,今天就聊聊这个问题.是否应该选择学NDK? 1.哪些场景下要用到NDK开发? 跨平台的库,如FFmpeg, skip,weex ...

  6. 人生最好的php,mysql,linux,redis,docker等相关技术经典面试题,新手收藏学习,持续更新中。。。

    php面试题 1.写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) # 200:服务器请求成功 # 301:永久重定向,旧网页已被新网页永久替代 # 302:表示临时 ...

  7. 前端主流面试官必问超详细面试题(整理完以秃头)持续更新中

    前端优化 我们可以使用以下几种方式做前端优化 CDN: CDN利用最靠近每位用户的服务器,更快.更可靠地将音乐.图片.视频.应用程序及其他文件发送给用户,来提供高性能.可扩展性及低成本的网络内容传递给 ...

  8. 【100道面试题真题讲解】C++面试题讲解+JAVA面试题讲解+Linux面试题讲解+数据结构面试题+计算机网络面试题 讲解视频-持续更新中

    最近找到了一个非常好的公众号:IT笔试面试真题讲解,每天视频分享一道IT公司面试高频题目,完全免费哦,非常适合找工作的学生复习+总结+提炼. 白嫖不敢独吞,分享给大家,也给作者增加一点访问量,鼓励作者 ...

  9. Android Studio 的一些 常用操作和 编译报错 整理(持续更新中...)

    Android Studio 的一些 常用操作和 编译报错 整理(持续更新中...) 目录 Android Studio 的一些 常用操作和 编译报错 整理(持续更新中...) 一.Android s ...

  10. 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 2020年拼多多校招面试题及答案-最全最新-持续更新中(2) 2020年拼多多校招面试题一面 2020年拼多多校招面试题一面- ...

最新文章

  1. Linux 忘记root登录密码解决方法
  2. VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
  3. 用友U9 cloud助力临工重机实现定制化生产
  4. MybatisPlus入门Lombok的使用
  5. java二维码生成_如何使用 Java 生成二维码?
  6. BZOJ 4610: [Wf2016]Ceiling Functi 水题
  7. CC1310在868MHz的电路设计
  8. ubuntu14.04 upgrade出现【Ubuntu is running in low-graphics mode】问题的一个解决办法
  9. 分布式事务的解决思路与方案
  10. 使用Regsvr32命令修复系统故障
  11. 2016-08-12
  12. 安装SVN及安装语言包
  13. padavan固件如何设置打印机
  14. 七大行星排列图片_八大行星图片欣赏
  15. 软件性能测试的几种方法
  16. React--》UI组件库ant-design的介绍与使用
  17. php-resque消息队列
  18. 机器学习之GD、SGD
  19. 在线教育网站的一些瞎折腾……
  20. 【数字图像处理】实验五 形态学图像处理

热门文章

  1. 回头再说012 盘点我的2008年
  2. 世界杯开打,病毒借明星无孔不入
  3. dell笔记本屏幕进水有水印
  4. 云联惠创业经营者认证_广州公安打掉云联惠涉传销组织 零壹财经曾发文警示...
  5. springboot系列(5) -- 整合 logback 彩色日志输
  6. Log4J按照不同包名输出日志
  7. differentiable rendering可微分渲染
  8. 蓝桥杯练习题 <座次问题> 排列型枚举 next_permutation
  9. Postgis使用工具osm2pgsql导入OpenStreetMap数据
  10. 计算机未连接到网络,电脑无法连接到网络的处理办法