在我保存作者之前,我想尝试检查作者是否在mongo中.当我通过创建作者函数运行我的第一个rss文档时,所有作者都保存在数据库中 - 即使他们在feed中编写了两个项目.
奇怪的是,如果我再次运行feed,mongoose似乎意识到作者已经存在并且不再添加它们.有人可以向我解释发生了什么事吗?
function insertFeedItems(feedItems, newFeedID, callback) {
feedItems.forEach((item) => {
let firstName = item.author.substr(0, item.author.indexOf(' '));
let lastName = item.author.substr(item.author.indexOf(' ') + 1);
authorController.createAuthorInternally(firstName, lastName, function(author) {
let aid = author.id;
categoryController.createCategoryInternally(item.categories, function(categories) {
// console.log('author: '+aid);
// console.log('categories: '+categories);
});
});
});
}
exports.createAuthorInternally = (firstName, lastName, callback) => {
let author = authorFilter.validateAuthor(firstName, lastName);
let queryParams = {
$and: [{firstName: {$regex: firstName, $options: 'i'}},
{lastName: {$regex: lastName, $options: 'i'}}],
};
let query = Author.findOne(queryParams).sort([['lastName', 'ascending']]);
let …Run Code Online (Sandbox Code Playgroud) private ExecutorService exec = Executors.newSingleThreadExecutor(r -> {
Thread t = new Thread(r);
t.setDaemon(true); // allows app to exit if tasks are running
return t ;
});
Run Code Online (Sandbox Code Playgroud)
我理解遗嘱执行人背后的想法,但是,参与者r让我感到困惑.我用了:
final ExecutorService exec = Executors.newSingleThreadExecutor(r -> {
Thread t = new Thread(r);
System.out.println("Class of r: " + r.getClass()+ ". r to string: " + r.toString());
System.out.println("Class of t: " + t.getClass() +". Name of t: "+ t.getName());
t.setDaemon(true);
return t;
});
Run Code Online (Sandbox Code Playgroud)
深入挖掘,结果如下:
Class of r: class java.util.concurrent.ThreadPoolExecutor$Worker. r to string: java.util.concurrent.ThreadPoolExecutor$Worker@1dc3963[State …Run Code Online (Sandbox Code Playgroud) 我有一个项目(ID3 标记),其中包含数十个 setter 和 getter。我正在调查 Lombok 项目,看看它对我有何帮助。
一些可以设置的字段有非常严格的要求,包括字符编码、位设置、长度检查、字符范围等等。我可以使用构建器模式,但是,在某些情况下可能不需要该模式。如果我想使用验证方法和/或类而不是注释怎么办?如何在 Netbeans 项目中访问 Lombok 的 setter 来添加这些验证?
我有这个编程任务,可以在米和英尺之间,以及千克到磅之间进行转换.当我告诉程序我想要转换重量(通过在提示时输入"w"),它给了我以下错误:
Error: Too many input characters error.
我在这方面工作了很长时间,但无法搞清楚.有人可以告诉我如何使重量转换像长度转换一样工作吗?
import java.util.Scanner;
/**
* This class..
*/
public class UnitConversion3b
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
String maxInputWarning = "\nError: Too many input characters."
+ "\nProgram is now terminating.";
String lengthOrWeight;
final double LENGTH_CONVERSION_FACTOR = 3.2808399;
final double WEIGHT_CONVERSION_FACTOR = 2.20462;
String whichWeightConversion = "empty" , whichLengthConversion = "empty";
double feet = 0, meters = 0, pounds =0 , kilograms = 0;
double metersConvertedToFeet, feetConvertedToMeters;
double …Run Code Online (Sandbox Code Playgroud) 我在应用程序中有2个布局,工具栏覆盖了这些布局.在每一个布局,我尝试使用android:layout_below="@id/app_bar_layout或android:layout_below="@id/toolbar,没有运气.我怎样才能解决这个问题?
通过触摸菜单项来调用回收器视图,并通过rv adpater和视图持有者类进行充气.到目前为止,除了覆盖视图的工具栏之外,我没有其他问题.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.aaron.walkingtourtest09feb.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/app_bar_layout"
android:theme="@android:style/Theme.Material">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="4dp"
app:popupTheme="@style/AppTheme.PopupOverlay"
android:background="#607D8B"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
content_main.xml:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar"
tools:context="com.example.test09feb.MainActivity"
tools:showIn="@layout/app_bar_main"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<fragment
android:id="@+id/listFragment"
android:tag="unique_tag"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.example.test09feb.MainActivity$ExampleFragment" >
</fragment>
Run Code Online (Sandbox Code Playgroud)
Recyclerview_activity.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cardview_light_background"
android:animateLayoutChanges="true"
android:padding="6dp">
<android.support.v7.widget.RecyclerView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rv">
</android.support.v7.widget.RecyclerView>
Run Code Online (Sandbox Code Playgroud)
cards.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="@+id/cv"
xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我正在使用本教程制作节点/ mongo应用程序.当我运行addContact时,似乎联系人保存到数据库但是,我得到一个错误,说断开连接功能不是一个功能.任何人都可以告诉我为什么会这样,以及如何解决它?我假设常量的范围存在一些问题,db?
码:
const mongoose = require('mongoose');
const assert = require('assert');
mongoose.Promise = global.Promise;
const db = mongoose.connect('mongodb://localhost:27017/contact-manager');
function toLower(v) {
return v.toLowerCase();
}
const contactSchema = mongoose.Schema({
firstname: { type: String, set: toLower },
lastname: { type: String, set: toLower },
phone: { type: String, set: toLower },
email: { type: String, set: toLower }
});
const Contact = mongoose.model('Contact', contactSchema);
const addContact = (contact) => {
Contact.create(contact, (err) => {
assert.equal(null, err); …Run Code Online (Sandbox Code Playgroud) "rowNumber"记录为:79050688."rowNumberAsInt"被记录为16以下的数字.如何正确转换我的int?
-(int)randomNumberGenerator{
int rowNumberAsInt;
NSNumber *rowNumber;
randomNumberPool = [[NSMutableArray alloc]initWithCapacity:16];
while (![randomNumberPool containsObject:rowNumber]) {
rowNumberAsInt = (arc4random() % 16);
rowNumber = [NSNumber numberWithInt:rowNumberAsInt];
[randomNumberPool addObject:rowNumber];
}
NSLog(@"random rowNumber: %d ", rowNumber);
NSLog(@"random rowNumberAsInt: %d ", rowNumberAsInt);
return rowNumberAsInt;
Run Code Online (Sandbox Code Playgroud)
}
我的数据库中有3个表.FOOD_GROUP, FOOD_DESCRIPTION, SECONDARY_FOOD_DESCRIPTION,.我Application.java以正确的顺序解析数据文件,以便在表上对下一个文件有用.我的问题是,当我在SecondaryFoodDescription类中设置databankID字段时,我得到了Data truncation: Data too long for column 'food' at row 1.这是令人惊讶的(至少对我而言)因为,我使用相同的repository.save方法来填充类中的foodGroup字段.Food.
编辑:我知道通常情况下,错误Data truncation: Data too long for column 'foodid' at row 1就意味着我要插入的内容对于字段来说太大了.但是,我正在尝试插入实体.我的实体怎么可能太大了?
谁能发现我错了?
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner demo(FoodGroupRepository foodGrouprepository, FoodRepository foodRepository,
SecondaryFoodInformationRepository secondaryFoodInformationRepository,
) {
return (args) -> {
FoodGroupParser foodGroupParser = new FoodGroupParser();
FoodGroup foodGroup;
Map<String, String> foodGroupMap = foodGroupParser.returnFoodGroupData();
for (Map.Entry<String, …Run Code Online (Sandbox Code Playgroud) 可能重复:
为什么接口类型的这些变量不用于实例化新对象?
在我正在使用的API下面的代码示例中,有一个变量初始化,"audiodecoder"和"cc".这两个变量属于接口类型.但是,除了actionlisteners之外,关键字implements不会在代码示例中的任何位置使用.
这与我迄今为止学到的关于Java的任何内容都不相符.我已经列出了下面的import语句,认为他们可能对IDecoder和ICodecContextWrapper没有相应的implements语句有一些线索.我也试图找到一些关于以这种方式使用接口的文档但没有成功.有人可以向我解释为什么不使用关键字实现?这个概念是否有一个名称,或许有一些关于这个概念的文献?
编辑:我还应该补充说,变量未在示例代码中使用关键字new声明.
import org.libav.audio.Frame2AudioFrameAdapter;
import org.libav.audio.PlaybackMixer;
import org.libav.audio.SampleInputStream;
import org.libav.avcodec.ICodecContextWrapper;
import org.libav.avformat.IChapterWrapper;
import org.libav.avformat.IFormatContextWrapper;
import org.libav.avformat.IStreamWrapper;
import org.libav.avresample.bridge.AVResampleLibrary;
import org.libav.avutil.IDictionaryWrapper;
import org.libav.avutil.bridge.AVChannelLayout;
import org.libav.avutil.bridge.AVSampleFormat;
import org.libav.bridge.LibraryManager;
import org.libav.data.IFrameConsumer;
import org.libav.util.swing.VideoPane;
IDecoder audioDecoder = player.getAudioStreamDecoder(streamIndex);
ICodecContextWrapper cc = audioDecoder.getCodecContext();
Run Code Online (Sandbox Code Playgroud) java ×5
javascript ×2
mongodb ×2
mongoose ×2
android ×1
ios ×1
java-8 ×1
lambda ×1
lombok ×1
netbeans ×1
node.js ×1
objective-c ×1
spring ×1
spring-boot ×1
spring-data ×1
xcode ×1